Swift Can';t导入SQLite3iOS

Swift Can';t导入SQLite3iOS,ios,swift,Ios,Swift,我将libsqlite3.0.dylib添加到我的项目中,然后尝试使用以下代码导入: import UIKit import sqlite3 class Dataware: NSObject { } 但这给了我一个错误: 没有此类模块“sqlite3”将其添加到桥接头.h文件中: #import <sqlite3.h> #导入 这是导入任何C语言库的主要机制 如果您还没有桥接头.h文件: #import <sqlite3.h> 添加一个文件bridge Hea

我将
libsqlite3.0.dylib
添加到我的项目中,然后尝试使用以下代码导入:

import UIKit
import sqlite3

class Dataware: NSObject
{

}
但这给了我一个错误:


没有此类模块“sqlite3”将其添加到桥接头.h文件中:

#import <sqlite3.h>
#导入
这是导入任何C语言库的主要机制

如果您还没有桥接头.h文件:

#import <sqlite3.h>
  • 添加一个文件bridge Header.h(或更典型的(ProjectName)-bridge Header.h
  • 转到项目的“生成设置”选项卡
  • 查找“Objective-C桥接头”。最简单的方法是搜索桥接
  • 输入在第一步中创建的文件的名称和路径。它可能是(ProjectName)/(ProjectName)-bridgeing Header.h

  • 当需要将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.将映射文件连接到您的项目,在“构建设置”中搜索“导入路径”,并将完整路径放入模块文件

    我们需要将SQLite3的头文件导入视图控制器,以便编译器可以查看构成API的函数和其他定义

    无法直接将头文件导入Swift代码,因为SQLite3库未打包为模块

    处理此问题的最简单方法是向项目中添加桥接头。一旦您有了桥接头,您可以向其中添加其他头文件,这些头文件将由Swift编译器读取。有几种方法可以添加桥接文件。我们将使用两种方法中较简单的一种,即临时添加Obj我们现在就开始吧

    文件➤ 新的➤ 文件…在对话框的iOS部分,选择 Cocoa Touch Class并按Next。将该类命名为临时类,使其成为NSObject的子类,将语言更改为Objective-C,然后按Next。在下一个屏幕中,按Create按钮。 执行此操作时,Xcode将弹出一个窗口,询问您是否要创建桥接头。按Yes。 现在,在项目导航器中,您将看到新类的文件(Temporary.mTemporary.h)和桥接头,称为SQLitePersistence Bridgeting header.h。删除不再需要的临时.m和临时.h文件。选择桥接头在编辑器中打开它,然后向其中添加以下行:

    #导入

    现在编译器可以看到SQLite3库和头文件,我们可以在ViewController.swift中编写更多的代码


    就这样!

    您好,请按照以下步骤操作

    在xcode 8.3.3中使用swift 3

  • 转到“生成阶段”选项卡
  • 转到“将二进制文件链接到库”子选项卡

    (a) 单击+按钮添加sqlite框架,然后搜索sqlite,然后可以看到libsqlite3.0.tbd和libsqlite3.tbd

    (b) 然后仅选择libsqlite3.tbd(不要同时添加两者,因为在viewController中声明时编译器找不到sqlite3 stuct)

  • 然后添加桥接头.h文件(因为sqlite不是用swift编写的)

  • 桥接名称应为Projectname桥接头.h文件(仅用于命名约定,非强制性)
  • 在桥接头文件中写入
    #导入
  • 转到“生成设置”选项卡

    (a) 在“生成设置”选项卡下,搜索Swift编译器-常规选项,并将
    YES
    设置为Install Objective-C compatibility Header

    (b) 在Objective-C桥接头选项中设置头文件的名称和路径(也可以简单地拖动桥接头文件)


  • 我在哪里将其添加到我的项目中?我添加了这个文件并导入了sqlite3.h,但对于.swift,我使用var dbsql=sqlite3()这一行。但使用未解析标识符“sqite3”的错误被发现。当我尝试将sqlite添加到我的swift frameworkHi@ben时,该解决方案对我有效。请详细说明您的答案。我不知道如何添加新模块Hi@Ratikantapra,要添加新模块映射,您需要:[1]创建名为module.map的文件[2]在Xcode中添加想要的模块信息(如我的答案中)[3]转到构建设置->设置Swift编译器->搜索路径->将路径导入到放置module.map文件的目录中是否可以将该文件中的绝对路径更改为$(SDKROOt)之类的内容?您知道module.map文件是否支持类似的功能吗?@StefanArentz module map文件不支持,但您可以使用xcconfig文件引用每个平台的不同
    MODULEMAP\u文件路径。有关示例,请参阅或我的框架(位于
    swift-1-2
    分支)。