NSBundle 返回 nil
我想从 plit 文件中读取应用程序的版本信息。
为此,我使用如下所示的代码。
NSString *myFilePath = [[NSBundle mainBundle]
pathForResource:@"MyApp-Info"
ofType:@"plist"];
// Format output
NSLog(@"%@",myFilePath);
即使我尝试导入 text.txt 类型的现有文件,输出
2010-08-31 17:14:10.095 MyApp[8759:20b] (null)
It 始终返回 nil,其中 text.txt 是在应用程序中导入的。
我一直在思考这个问题:不是每个人都建议使用 NSBundel 来读取预导入的文件,但没有用。
任何帮助,或者更好的方式来阅读应用程序版本。
I wanted to read version information of my application from the plit file.
For this I am using a code as shown below.
NSString *myFilePath = [[NSBundle mainBundle]
pathForResource:@"MyApp-Info"
ofType:@"plist"];
// Format output
NSLog(@"%@",myFilePath);
The output
2010-08-31 17:14:10.095 MyApp[8759:20b] (null)
It always returns nil even if I tried to Import an existing file of type, text.txt still return nil, where text.txt is imported in the application.
I have goggled for the problem dont every one recommends to use NSBundel to read an pre imported file, but no use.
Any help, or an better way to read application version.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
通过
Got the solution via another link in the stack overflow here.
这不起作用的原因是因为 pathForResource 会在“MyApp.app/Contents/Resources”中查找内容。 Info.plist 文件并不驻留在资源文件夹中,因此如果您在那里查找它,它将返回 nil。获取它的正确方法是使用 NSBundle 上的“infoDictionary”方法。
The reason this doesn't work is because pathForResource looks for stuff inside "MyApp.app/Contents/Resources". The Info.plist file does not reside inside the resources folder, so it's going to return nil if you look for it there. The correct way to get at it is to use the "infoDictionary" method on NSBundle.