无法从自定义动态框架(Swift)访问类

时间:2014-09-13 13:08:02

标签: ios swift frameworks xcode6

我的测试动态iOS框架XYZFramework由一个类XYZ组成。

然而,即使在宣布:

之后
import XYZFramework

我无法访问此类,任何尝试都会产生以下错误:

Use of unresolved identifier 'XYZ'

如何解决此问题?

2 个答案:

答案 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 版本中访问框架的符号。