我在Xcode中创建了一个静态库,我可以在其他项目中成功使用它。然而,像plists这样的资源,我发现我必须在我的图书馆中使用项目的主项目中引用任何plists。Obj-c静态库中的NSBundle,plist和其他资源
在我的静态库项目中,我将我的plist包含在目标的“Copy Bundle Resources”阶段中。在我的代码,这里是我在做什么:
NSBundle *mainBundle = [NSBundle mainBundle];
NSString *filePath = [mainBundle pathForResource:@"MyClassParams" ofType:@"plist"];
NSMutableDictionary* params = [[NSMutableDictionary alloc] initWithContentsOfFile:filePath];
如果我使用mainBundle和MyClassParams.plist包含在主体工程,一切都很好。如果MyClassParams.plist包含在库项目中,则不起作用。
NSBundle *mainBundle = [NSBundle bundleForClass:[MyClass class]];
这也不能工作:
在假设[一个NSBundle mainBundle]被引用了错误的静态方法来使用,我取而代之。
那么,是否有可能在静态库中包含plist或任何其他资源 - 或者我必须在使用lib的项目中包含任何我需要的内容?
从这个问题开始赏金 - 是接受的答案仍然正确的iOS 4.2? – 2010-12-26 17:08:31