Mir*_*iro 3 bundle objective-c
在我的Iphone应用程序中,我之前通过执行以下代码将标准plist文件加载到Dictionary中.最近我将源文件和plist文件复制到一个新的包中,我将其编译成一个框架并在原始应用程序中使用.所有代码都在运行,但plist加载代码无法再找到settings.plist文件.看看路径,它似乎仍然在查看主应用程序的文件.
我是否需要以某种方式更新此捆绑包以读取嵌入式资源的框架?
NSBundle *bundle = [NSBundle mainBundle];
NSString *path = [[bundle resourcePath] stringByAppendingPathComponent:@"settings.plist"];
_plistDictionary = [[NSDictionary alloc] initWithContentsOfFile:path];
Run Code Online (Sandbox Code Playgroud)
如果我正确理解你,是的.
+[NSBundle mainBundle]返回与NSBundle当前应用程序可执行文件所在目录对应的对象.简而言之,它将返回主应用程序的包,这不是您想要的(您希望在应用程序的包中包含框架).
由于您希望获取框架的bundle,如果加载该plist的代码驻留在框架本身中,您可以执行以下操作:
NSBundle* bundle = [NSBundle bundleForClass:[self class]];
Run Code Online (Sandbox Code Playgroud)
然后它将返回框架的包.或者更具体地说,该类(此代码)所在的包.
| 归档时间: |
|
| 查看次数: |
3862 次 |
| 最近记录: |