objective-c - IOS Framework trouble load 加载嵌入式资源plist文件

标签 objective-c bundle

在我的 Iphone 应用程序中,我之前通过执行以下代码将标准 plist 文件加载到字典中。最近我将源代码和 plist 文件复制到一个新的包中,我将其编译成一个框架并在原始应用程序中使用。所有代码都在运行,但是 plist 加载代码找不到 settings.plist 文件了。查看路径,它似乎仍在查找主应用程序的文件。

我是否需要以某种方式更新此包以读取框架嵌入式资源?

NSBundle *bundle = [NSBundle mainBundle];
NSString  *path = [[bundle resourcePath] stringByAppendingPathComponent:@"settings.plist"];
_plistDictionary = [[NSDictionary alloc] initWithContentsOfFile:path];

最佳答案

如果我没理解错的话,是的。

+[NSBundle mainBundle] 返回对应于当前应用程序可执行文件所在目录的 NSBundle 对象。所以简而言之,它将返回主应用程序的包,这不是你想要的(你想要一个框架的包,在你的应用程序的包中)。

由于您想要为您的框架获取包,如果加载该 plist 的代码驻留在框架本身中,您可以执行如下操作:

NSBundle* bundle = [NSBundle bundleForClass:[self class]];

然后返回框架的包。或者更具体地说,该类(此代码)所在的包。

关于objective-c - IOS Framework trouble load 加载嵌入式资源plist文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22872088/

相关文章:

android - 如何为从另一个 fragment 接收到的 fragment 的 TextView 设置值?

android - 使用 SDK 安装 android NDK 后是否还需要手动安装 android NDK

macos - 如何在 CMake 脚本中获取应用程序包的路径以将其提供给 fixup_bundle()?

c# - 如何在 MVC 4 中正确 bundle 样式和脚本?

ios - 标签栏 Controller 不显示栏按钮项目

ios - 如何通过 opengl es 使用 Apples Core Image

ios - SDCAlertView 和 UIViewController 与 UIButton

ios - 如何将MKCircleView从一个位置移动到MKMapView中的另一个位置?

asp.net-mvc - MVC 5 bundle 错误

objective-c - 在 webView 中执行 Segue shouldStartLoadWithRequest 并返回 'NO'