Swift не может импортировать Sqlite3 iOS
Я добавил libsqlite3.0.dylib
в свой проект, а затем попытался импортировать с помощью следующего кода:
import UIKit
import sqlite3
class Dataware: NSObject
{
}
Но это дает мне эту ошибку:
Нет такого модуля 'sqlite3'
Ответы
Ответ 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 Модификация заголовка (или вы можете просто перетащить заголовочный файл моста)