2010-08-31 140 views
1

我想從plit文件中讀取我的應用程序的版本信息。NSBundle返回零

爲此,我使用的代碼如下所示。

NSString *myFilePath = [[NSBundle mainBundle] 
           pathForResource:@"MyApp-Info" 
           ofType:@"plist"]; 

     // Format output 

     NSLog(@"%@",myFilePath); 

輸出

2010-08-31 17:14:10.095 MyApp[8759:20b] (null) 

它總是返回nil,即使我嘗試導入類型的現有文件中,仍然的text.txt返回nil,其中的text.txt在應用程序中導入。

我對這個問題有不同的看法,不建議使用NSBundel來讀取預先導入的文件,但沒有用。

任何幫助,或更好的方式來閱讀應用程序版本。

回答

2

通過stack overflow here中的另一個鏈接獲得解決方案。

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


     NSLog(@"%@",version); 
1

這不工作的原因是因爲pathForResource尋找的東西「MyApp.app/Contents/Resources」裏。 Info.plist文件不駐留在資源文件夾內,因此如果您在那裏查找它,它將返回nil。正確的方法是在NSBundle上使用「infoDictionary」方法。

+0

你可以在這裏放置代碼,這樣可以幫助一些正在尋找同樣問題的人。 – Ameya 2010-09-01 05:09:17