我在项目中添加了libsqlite3.0.dylib
,然后尝试使用以下代码导入:
import UIKit
import sqlite3
class Dataware: NSObject
{
}
但它给了我这个错误:
没有这样的模块' sqlite3'
答案 0 :(得分:45)
将其添加到您的Bridging-Header.h文件中:
#import <sqlite3.h>
这是导入任何C语言库的主要机制。
如果您还没有Bridging-Header.h文件:
答案 1 :(得分:7)
当想要将sqlite添加到框架目标时,需要module.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.将地图文件连接到您的项目,在“构建设置”中搜索“导入路径”并将完整路径放入模块文件
答案 2 :(得分:5)
我们需要将SQLite3的头文件导入到视图控制器中,以便编译器可以看到构成API的函数和其他定义。
无法直接将头文件导入Swift代码,因为SQLite3库未打包为模块。
处理此问题的最简单方法是向项目添加桥接标头。一旦有了桥接头,就可以向其添加其他头文件,Swift编译器将读取这些头文件。有几种方法可以添加桥接文件。我们将使用两者中较简单的方法,即临时将Objective-C类添加到项目中。我们现在就这样做。
文件➤新建➤文件.... 在对话框的iOS部分中,选择 Cocoa Touch Class ,然后按“下一步”。将类命名为Temporary,使其成为 NSObject 的子类,将语言更改为Objective-C,然后按下一步。在下一个屏幕中,按创建按钮。 执行此操作时,Xcode将弹出一个窗口,询问您是否要创建桥接标头。按是。 现在,在Project Navigator中,您将看到新类的文件( Temporary.m 和 Temporary.h )和桥接标题,称为SQLite <强>持久性 - 桥接-Header.h 即可。删除Temporary.m和Temporary.h文件 - 您不再需要它们了。选择桥接标题以在编辑器中将其打开,然后将以下行添加到其中:
#import&lt; sqlite3.h&GT; 强>
既然编译器可以看到SQLite3库和头文件,我们可以在 ViewController.swift
中编写更多代码就是这样!
答案 3 :(得分:3)
您好请按照以下步骤操作
在xcode 8.3.3中使用swift 3
使用Libraries子选项卡转到Link Binary。
(a)单击+按钮添加sqlite框架然后搜索sqlite然后你可以看到libsqlite3.0.tbd和libsqlite3.tbd
(b)然后只选择libsqlite3.tbd(不要同时添加两者,因为在viewController中声明时编译器找不到sqlite3 stuct)
然后添加Bridging-Header.h文件(因为sqlite不是用swift编写的)
#import <sqlite3.h>
转到构建设置标签
(a)在构建设置选项卡下搜索Swift编译器 - 常规选项并将YES
设置为安装Objective-C兼容性标题
(b)在 Objective-C桥接标题选项中设置标题文件的名称和路径(或者您只需拖动桥接标题文件)