2010-04-20 35 views
4

在這裏,我粘貼我的代碼,我想從我的test-Info.plist中檢索Bundle版本。如何從iPhone中的項目test-Info.plist中檢索標籤中的Bundle版本?

@interface testViewController : UIViewController { 
    UILabel *label; 
} 
@property(nonatomic,retain) IBOutlet UILabel *label; 

@end 

@implementation testViewController 

@synthesize label; 

- (void)viewDidLoad { 
    [super viewDidLoad]; 

    NSString *path = [[NSBundle mainBundle] pathForResource:@"test-info" ofType:@"plist"]; 

    NSString *versionString = [NSString stringWithFormat:@"v%d", [plistData objectForKey:@"Bundle version"]]; 

    label.text = versionString; 
} 

@end 

但我仍得到了空值在那裏我錯了

+0

你真的應該只發布與你的問題相關的那部分代碼 - 很難瀏覽上百行代碼來找到它... – Vladimir 2010-04-20 13:48:58

+0

另外檢查這個問題:http://stackoverflow.com/questions/2657477/how-to-check-bundle-version-for-our-application-by-programming/2657500 – Vladimir 2010-04-20 13:53:58

+0

可能的重複[如何閱讀從PList的捆綁版本?](http://stackoverflow.com/questions/2244985/how-to-read-the-bundle-version-from-plist) – 2016-12-26 15:36:19

回答

1

嘗試通過這樣獲取的plist路徑:

NSString *path = [[NSBundle mainBundle] pathForResource:@"test-info" ofType:@"plist"]; 
+0

仍然即時獲得空值在我的標籤 – AmanGupta007 2010-04-20 14:30:11

+0

'[plistData objectForKey :@「Bundle version」]'將返回一個'NSNumber'。在格式字符串中使用'@「v%@」'來轉換NSNumber(您應該始終在格式化字符串中使用'%@'作爲Obj-C對象),或者保留爲'@「v%d」'和使用'[[plistData objectForKey:@「Bundle version」] intValue]'將'NSNumber'轉換爲'int'。 – 2010-04-23 07:17:07

36

下面一行將檢索版本供您

[[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleVersion"]; 
+2

這是真正的答案..不是接受的答案 – Krishnabhadra 2012-09-13 11:22:20

+7

也值得注意的是:「Bundle Version」或「CFBundleVersion」等同於應用程序的內部版本號。如果您想要實際的「x.y」字符串,請改爲使用「CFBundleShortVersionString」。 – jemmons 2013-03-13 02:36:12

相關問題