我的测试动态iOS框架XYZFramework
由一个类XYZ
组成。
然而,即使在宣布:
之后import XYZFramework
我无法访问此类,任何尝试都会产生以下错误:
Use of unresolved identifier 'XYZ'
如何解决此问题?
答案 0 :(得分:51)
找到答案。我必须使用public
修饰符为我的类声明添加前缀。所以这个:
class XYZ {
}
成为:
public class XYZ {
}
而且,与往常一样,废弃~/Library/Developer/Xcode/DerivedData
文件夹修复了任何轻微的并发症。
答案 1 :(得分:0)
如果框架的类还包含静态和实例成员函数,则还需要添加更多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
这可确保可以在 Release 版本中访问框架的符号。