Ios Can';t从自定义动态框架(Swift)访问类
我的测试动态iOS框架Ios Can';t从自定义动态框架(Swift)访问类,ios,swift,frameworks,xcode6,Ios,Swift,Frameworks,Xcode6,我的测试动态iOS框架XYZFramework由一个类XYZ组成 然而,即使在宣布: import XYZFramework 我无法访问此类,任何尝试都会产生以下错误: Use of unresolved identifier 'XYZ' 如何解决此问题?找到了答案。我必须在我的类声明前面加上public修饰符。因此: class XYZ { } 成为: public class XYZ { } 而且,一如既往,破坏~/Library/Developer/Xcode/DerivedD
XYZFramework
由一个类XYZ
组成
然而,即使在宣布:
import XYZFramework
我无法访问此类,任何尝试都会产生以下错误:
Use of unresolved identifier 'XYZ'
如何解决此问题?找到了答案。我必须在我的类声明前面加上
public
修饰符。因此:
class XYZ {
}
成为:
public class XYZ {
}
而且,一如既往,破坏
~/Library/Developer/Xcode/DerivedData
文件夹修复了任何小问题。如果框架的类还包含静态和实例成员函数,则还需要添加一些公共
关键字
// 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
这确保了框架的符号可以在版本中访问 在我将“public”添加到所有内容后,退出Xcode,删除~/Library/Developer/Xcode/DerivedData,重新启动Xcode,错误消失了。我每次都忘记这一部分…grrrrold thread,但需要注意的是:我没有删除该文件夹,而是将方案切换到框架并运行构建,然后将方案切换回我的应用程序并运行一个构建,完成了相同的刷新。“破坏~/Library/Developer/Xcode/DerivedData”帮了我的忙,谢谢!您介意在github上发布您的测试项目吗。我正在尝试制作一个框架。我也遇到了同样的问题。类和func在我创建的单独测试项目中不可访问。