Ios 动态加载的Swift框架包';s的主类为零
iOS应用程序需要按需加载/执行/卸载捆绑代码的罕见情况。虽然它与Objective-C框架一起工作,但Swift框架被证明是一个障碍:Ios 动态加载的Swift框架包';s的主类为零,ios,objective-c,swift,cocoa-touch,nsbundle,Ios,Objective C,Swift,Cocoa Touch,Nsbundle,iOS应用程序需要按需加载/执行/卸载捆绑代码的罕见情况。虽然它与Objective-C框架一起工作,但Swift框架被证明是一个障碍:Bundle。principleClass始终返回nil 我在这篇博文中引用了这个例子,还有其他类似的来源 需要3个单独的项目(而不是单个项目中的3个目标): 您可以在此处签出代码: Xcode项目设置: 如果您尝试构建并运行,控制台将讲述以下故事: Loaded bundle: FrameworkObjC.framework , principal c
Bundle。principleClass
始终返回nil
我在这篇博文中引用了这个例子,还有其他类似的来源
需要3个单独的项目(而不是单个项目中的3个目标):
您可以在此处签出代码:
Xcode项目设置:
如果您尝试构建并运行,控制台将讲述以下故事:
Loaded bundle: FrameworkObjC.framework , principal class: PluginObjC
Loaded bundle: FrameworkSwift.framework , principal class: N/A
关于Swift框架的一些细节:
- 类是公共的,并扩展了NSObject
- 主体类在Info.plist中设置
- 框架没有链接,它们作为二进制文件嵌入
- 框架项目被拖到主项目中
Loaded bundle: FrameworkObjC.framework , principal class: PluginObjC
Loaded bundle: FrameworkSwift.framework , principal class: N/A