【发布时间】:2015-07-28 20:59:44
【问题描述】:
将一些代码移入外部框架后,我一直在尝试在我的应用程序中导入和使用该框架。我已将该框架作为依赖项添加到我的应用中。
我的框架叫做 DiceKit。在其中一个类中,为了测试,我在文件顶部添加了import DiceKit。这不会引发任何错误。
当我尝试访问应该在框架中的类时,我收到了 Use of Unresolved Identifier 错误。
import UIKit
import DiceKit
class FirstViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
println (Die(12).roll()) // `Die` doesn't exist at compile time
}
}
什么可能导致框架中的类无法编译?我已确保所有类和方法都标记为 public,并且我没有更改框架中默认的任何构建设置。
我正在使用 XCode 6.3 Beta
感谢您的帮助!
【问题讨论】:
-
你的外部框架是Objective-C吗?你做了桥接头吗?
-
外部框架也是用 Swift 编写的。那里有一个由 XCode 创建的头文件 DiceKit.h。在这种情况下我还需要桥接头吗?
-
添加 Dice 类的声明。我认为它没有被宣布为公开的。另请注意,使用 swift 代码作为框架仍然存在一些缺点 atm,特别是因为嵌入式 Swift 版本必须相同(在应用程序和框架中)是必不可少的,因此仅包含代码可能更好 atm在你的项目中,而不是只有框架。
-
@MikeLischke,我应该在哪里添加哪个骰子类的声明?框架中的所有类都标记为公共的。有趣的是,需要相同版本号的快速代码。这只是 Swift 似乎没有 100% 准备好使用的另一个原因。
-
我遇到了这个问题;我通过将我的 .swift 文件添加到构建阶段下的框架的编译源(而不是标题)来解决它。然后 Xcode 识别了它们,我可以正常使用它们。