Подтвердить что ты не робот

Swift не может импортировать Sqlite3 iOS

Я добавил libsqlite3.0.dylib в свой проект, а затем попытался импортировать с помощью следующего кода:

import UIKit
import sqlite3

class Dataware: NSObject
{

}

Но это дает мне эту ошибку:

Нет такого модуля 'sqlite3'

4b9b3361

Ответ 1

Добавьте его в файл Bridging-Header.h:

#import <sqlite3.h>

Это основной механизм импорта любых библиотек на языке C.

Если у вас еще нет файла Bridging-Header.h:

  • Добавить файл Bridging-Header.h(или более типично (ProjectName) -Bridging-Header.h
  • Перейдите на вкладку настроек сборки для вашего проекта.
  • Найти "Objective-C Консоль верхнего уровня". Самый простой способ - найти мосты.
  • Введите имя и путь для файла, созданного на первом шаге. Это возможно (ProjectName)/(ProjectName) -Bridging-Header.h

Ответ 2

когда нужно добавить sqlite в фреймворк, необходим модуль .map
поскольку sqlite не отображается, и для этого просто:
1. создать файл в вашем проекте 'module/module.map'
2. Создайте модуль из заголовка зонтика:

    module sqlite3 [system] {
       header "/Applications/Xcode6-Beta5.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.0.sdk/usr/include/sqlite3.h"
       link "sqlite3"
       export *
    }

* измените Xcode6-Beta5.app на пути вправо один 3. подключите файл карты к проекту, найдите "пути импорта" в "Настройки сборки" и поместите полный путь к файлу модуля

Ответ 3

Нам нужно импортировать файлы заголовков для SQLite3 в контроллер представления, чтобы компилятор мог видеть функцию и другие определения, составляющие API.

Невозможно напрямую импортировать заголовочный файл в код Swift, потому что библиотека SQLite3 не упакована в виде модуля.

Самый простой способ справиться с этим - добавить в проект заголовок моста. Когда у вас заголовок моста, вы можете добавить к нему другие файлы заголовков, и эти файлы заголовков будут прочитаны компилятором Swift. Есть несколько способов добавить файл моста. Хорошо используйте более простой из двух, чтобы временно добавить класс Objective-C в проект. Давайте сделаем это сейчас.

Файл ➤ Новый ➤ Файл.... В разделе iOS диалогового окна выберите Cocoa Коснитесь класса и нажмите "Далее". Назовите класс Temporary, сделайте его подклассом NSObject, измените язык на Objective-C и нажмите Далее. На следующем экране нажмите кнопку Создать. Когда вы это сделаете, Xcode откроет окно с вопросом, хотите ли вы создать заголовок моста. Нажмите Да. Теперь в Навигаторе проектов вы увидите файлы для нового класса (Temporary.m и Temporary.h) и заголовок моста, который называется SQLite Постоянство-Bridging-header.h. Удалите файлы Temporary.m и Temporary.h - они вам больше не нужны. Выберите заголовок моста, чтобы открыть его в редакторе, а затем добавьте в него следующую строку:

#import < sqlite3.h >

Теперь, когда компилятор может увидеть библиотеку SQLite3 и файлы заголовков, мы можем написать еще один код в ViewController.swift

Что это!

Ответ 4

Привет, пожалуйста, выполните следующие действия.

В xcode 8.3.3 с использованием быстрого 3

  • Перейдите на вкладку "Сборка фаз".
  • Перейдите на вкладку "Связывание двоичных файлов с библиотеками".

    (a) Нажмите кнопку +, чтобы добавить sqlite framework, затем выполните поиск sqlite, после чего вы можете увидеть libsqlite3.0.tbd и libsqlite3.tbd

    (b) Затем выберите только libsqlite3.tbd(не добавляйте оба, потому что компилятор не может найти sqlite3 stuct при объявлении в viewController)

  • Затем добавьте файл Bridging-Header.h(потому что sqlite не написан быстро)

  • Имя моста должно быть вашим файлом Projectname-Bridging-Header.h(только для соглашения об именах, не обязательно)
  • Напишите #import <sqlite3.h> в вашем файле с заголовком Bridging-Header
  • Перейдите на вкладку настроек сборки

    (a) На вкладке "Параметры сборки" найдите опцию Swift Compiler-General и установите YES в Установить Objective-C Заголовок заголовка

    (b) Задайте свое имя и путь для файла заголовка в Objective-C Модификация заголовка (или вы можете просто перетащить заголовочный файл моста)