NSBundle 返回 nil

发布于 2024-09-16 20:19:27 字数 538 浏览 8 评论 0原文

我想从 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

人海汹涌 2024-09-23 20:19:27

通过

NSString *version = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"];


        NSLog(@"%@",version);

Got the solution via another link in the stack overflow here.

NSString *version = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"];


        NSLog(@"%@",version);
似最初 2024-09-23 20:19:27

这不起作用的原因是因为 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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文