【发布时间】:2015-10-28 12:55:38
【问题描述】:
我查看了所有其他具有相同错误(使用未声明类型)的帖子,但仍然无法弄清楚我的项目有什么问题。
与其他情况的不同之处在于,我可以在 AppDelegate 和 ViewController 类中成功使用 FMDatabase,但不能从我创建的另一个类中使用,尽管与 AppDelegate 和 ViewController 类在同一个项目中。
“成功使用”是指我可以访问其中的数据库和表。
另外请注意,我无需导入任何内容即可在 AppDelegate 或 ViewController 中使用 FMDatabase。
到目前为止我所做的(Xcode.6.4 Swift 1.2):
创建了一个单视图 swift 项目。
使用 cocoapods 安装 FMDB (https://cocoapods.org/?q=fmdb)
为 FMDB 创建了桥接头
我可以从 AppDelegate.swift 和 ViewController.swift 类中成功声明和使用 FMDatabase。
AppDelegate.swift
@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'
}
Swift Bridging Header 提供复制器。
如有任何提示或想法,请提前致谢。
【问题讨论】:
-
您是否尝试过明确的导入语句?另外,是否将 DBUtil 添加到同一目标?只是几个想法......
-
@RomanSausarnes 感谢您的评论。我确实尝试过导入,但仍然找不到要导入的内容。另请注意,我不需要导入任何内容即可从 AppDelegate 或 ViewController 访问它。是的,DBUtil 与 AppDelegate 和 ViewController 在同一个项目中,所以它应该是同一个目标,除非我错过了什么。
-
文件可以有不同的目标,即使它们在同一个项目中。查看右侧可滑动面板中的检查器选项卡中的一些复选框,以确保已将其添加到哪些目标。这肯定会解释你所看到的行为。
标签: ios objective-c xcode swift xcode6.4