and*_*oza 4 iphone objective-c nsbundle
我是一个Objective C菜鸟,我不太了解以下问题.
此代码有效:
NSString *plistPath = @"/Users/andrewf/MyApp/Resources/Plates.plist";
dicPlates = [[NSDictionary alloc] initWithContentsOfFile:plistPath];
Run Code Online (Sandbox Code Playgroud)
我的字典对象按预期加载了值.
此代码不起作用:
NSString *plistPath = [[NSBundle mainBundle] pathForResource:@"Plates" ofType:@"plist"];
dicPlates = [[NSDictionary alloc] initWithContentsOfFile:plistPath];
Run Code Online (Sandbox Code Playgroud)
plistPath返回值为nil.无论我是否在调用中包含inDirectory:@"Resources",情况都是如此.尝试在Resources目录中打开.plist文件时,我发现的所有示例都不包含inDirectory.
我已经确认该文件存在于正确的位置,甚至可以重新创建它.
这似乎是一个简单的问题,但我很神秘.请协助.
Dav*_*ong 12
我觉得你对于在哪里pathForResource:看起来很困惑.
这有效:
NSString *plistPath = @"/Users/andrewf/MyApp/Resources/Plates.plist";
Run Code Online (Sandbox Code Playgroud)
请注意,此路径不指向您的应用程序.它指向您的项目目录.你的plist应该是在@/Users/andrewf/MyApp/build/Release/MyApp.app/Resources/Plist.plist"(一个iPhone应用程序,这将是不同的,更象@"/Users/andrewf/Library/Application Support/iPhone Simulator/User/Applicatons/(unique id)/MyApp.app/Resources/Plates.plist"),它是资源文件夹内您的应用程序是pathForResource:期待.
这意味着您的资源不在构建目标的"复制包资源"阶段.您需要将它从"组和文件"区域拖到该阶段内.
| 归档时间: |
|
| 查看次数: |
10154 次 |
| 最近记录: |