Ios Swift桥接头-使用未声明的类型';FMDatabase';错误
我已经看过了所有其他有相同错误的帖子(使用未声明的类型),但仍然无法找出我的项目有什么问题 与其他情况不同的是,我可以在AppDelegate和ViewController类中成功使用FMDatabase,但不能从我创建的另一个类中使用,尽管它与AppDelegate和ViewController类在同一个项目中 所谓“成功使用”,我的意思是我可以访问其中的数据库和表 还请注意,在AppDelegate或ViewController中使用FMDatabase不需要导入任何内容 到目前为止,我所做的工作(Xcode.6.4 Swift 1.2):Ios Swift桥接头-使用未声明的类型';FMDatabase';错误,ios,objective-c,xcode,swift,xcode6.4,Ios,Objective C,Xcode,Swift,Xcode6.4,我已经看过了所有其他有相同错误的帖子(使用未声明的类型),但仍然无法找出我的项目有什么问题 与其他情况不同的是,我可以在AppDelegate和ViewController类中成功使用FMDatabase,但不能从我创建的另一个类中使用,尽管它与AppDelegate和ViewController类在同一个项目中 所谓“成功使用”,我的意思是我可以访问其中的数据库和表 还请注意,在AppDelegate或ViewController中使用FMDatabase不需要导入任何内容 到目前为止,我所做
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
var database: FMDatabase? // OK
...
ViewController.swift
class ViewController: UIViewController {
var database: FMDatabase? // OK
...
在DBUtil.swift中,我得到了“使用未声明的类型'FMDatabase'”错误
DBUtil.swift
class DBUtil {
var database: FMDatabase? // Error: "Use of undeclared type 'FMDatabase'
}
有一台复印机可供选择
对于任何提示或想法,请提前感谢。这是因为
DBUtil
是BridgingHeaderTests
目标的一部分(但应用程序代理和视图控制器不是),但该目标未配置为FMDB(测试目标的“Objective-C桥接头”设置为空)
您可以:
DBUtil
:
对于其他情况,我在这里留下了一个答复:我得到了相同的错误,但问题是在我的桥接头中,我忘了编写
#import“FMDatabase.h”
我的情况也是相同的错误。我通过勾选“需要时复制项目”&&creategroups和make将.h和.m文件(而不是文件夹)添加到project中来修复它。然后创建obj c桥接头
在Target的构建阶段,将二进制文件链接到库中—添加了libsqlite3.tbd。
将“嵌入内容包含swift代码”设置为“是”
它解决了这个参考问题。如果您使用CocoaPods安装了FMDB,只需添加
import FMDB
在使用FMDatabase的swift文件中..您是否尝试过显式导入语句?另外,是否将DBUtil添加到同一目标?只是一些想法…@RomanSausarnes谢谢你的评论。我确实尝试导入,但仍然找不到要导入的内容。还要注意的是,我不需要导入任何东西就可以从AppDelegate或ViewController访问它。是的,DBUtil与AppDelegate和ViewController在同一个项目中,所以它应该是同一个目标,除非我遗漏了什么。文件可以有不同的目标,即使它们在同一个项目中。通过右侧可滑动面板中的inspector选项卡查看一些复选框,这些复选框指示已将其添加到哪些目标,只是为了确定。这肯定能解释你所看到的行为。罗布:没错!!!!非常感谢。教训:桥接头必须添加到测试目标中(当然,在适当的时候),但要记住一些事情。第2个问题解决了我的问题,Swift没有识别obj CUnbelievable,我也有同样的问题。My DatabaseHelper.swift文件有两个不同的目标成员身份,一个是无意的。一直以来,我都在想,我的构建设置可能遗漏了一些东西:/Hi,George,我有一个类似的问题,那就是
AMSmoothAlert
(安装在Pods中),那么我如何让它在swift中使用呢?