我在 Xcode 中创建了一个静态库,我可以在其他项目中成功使用它。但是,对于 plist 之类的资源,我发现我必须在使用该项目的主项目中包含我的库中引用的任何 plist。
在我的静态库项目中,我的 plist 包含在目标的“复制捆绑资源”阶段。在我的代码中,这就是我正在做的事情:
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 *mainBundle = [NSBundle bundleForClass:[MyClass class]];
这也不起作用。
那么,是否可以在静态库中包含 plist 或任何其他资源——或者我是否必须在使用 lib 的项目中包含我需要的任何内容?