好的,我已经研究了一些资源和示例代码(例如this),它应该非常简单,但我仍然无法找到答案。
我设法让整个事情(获取外部包加载和集成)工作,除了一个小细节。
我得到了#34;主要"捆绑中的类,使用:
NSString* bundlePath = [[NSBundle mainBundle] pathForResource:@"MyBundle"
ofType:@"plugin"];
NSBundle* myBundle = [NSBundle bundleWithPath:bundlePath];
Class someClass = [myBundle principalClass];
事情是:如何(以及在哪里)我可以设置" principalClass"在捆绑?
答案 0 :(得分:0)
问题的解决方案相当简单(如果我们排除与Xcode错误相关的问题,而不是实际更新对初始项目所做的更改)。
正如@AnoopVaidya也指出的那样,只需打开info.plist
,即使NSPrincipalClass
键不存在,也要将其值设置为实际“主要类”的名称。
一旦清理并重新构建,就应该正确识别您的软件包的主要类。
文档:
NSBundle以两种方式之一找到主要类。首先,它看起来 对于bundle的信息属性中的NSPrincipalClass键 名单。如果密钥存在,它使用密钥命名的类 value作为bundle的主要类。如果密钥不存在或 key指定一个不存在的类,NSBundle使用第一个 作为主类加载的类。如果捆绑包是用 Xcode,在项目中查看的类的顺序决定了 它们被加载的顺序。
来源: