【发布时间】:2014-11-07 12:47:52
【问题描述】:
我的测试动态 iOS 框架 XYZFramework 由单个类 XYZ 组成。
但是,即使在声明之后:
import XYZFramework
我无法访问此类,任何尝试都会产生以下错误:
Use of unresolved identifier 'XYZ'
我该如何解决这个问题?
【问题讨论】:
标签: ios swift frameworks xcode6
我的测试动态 iOS 框架 XYZFramework 由单个类 XYZ 组成。
但是,即使在声明之后:
import XYZFramework
我无法访问此类,任何尝试都会产生以下错误:
Use of unresolved identifier 'XYZ'
我该如何解决这个问题?
【问题讨论】:
标签: ios swift frameworks xcode6
找到答案。我必须在我的类声明前加上 public 修饰符。所以这个:
class XYZ {
}
成为:
public class XYZ {
}
而且,与往常一样,删除 ~/Library/Developer/Xcode/DerivedData 文件夹可以解决任何小问题。
【讨论】:
如果您的框架类还包含静态和实例成员函数,您还需要添加更多public 关键字。
// set the Framework class to Public
public class FrameworkHello{
// set the initializer to public, otherwise you cannot invoke class
public init() {
}
// set the function to public, as it defaults to internal
public static func world() {
print("hello from a static method")
}
}
现在您可以通过 Swift 代码或 lldb 访问它:
(lldb) po FrameworkHello.world()
hello from a static method
这确保了框架的符号可在 发布 构建中访问。
【讨论】: