2012-07-28 67 views
0

大家好我在我的應用中遇到問題。我需要確定我的應用程序是否已更新到某個點。我發現用這種方法我怎樣才能獲得最新的版本應用更新問題

NSString *first = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"]; 

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

如果應用程序從iTunes,誰無功變化,以確定我的應用程序,因爲我的目標證明通過修改從Xcode中已更新更新>總結>版本來證明。第一個變化,但第二個不變。

我必須選擇第一個還是第二個,以及我如何證明這一點?

+0

請學會寫可讀的英文。我不確定你在這裏問什麼。 – 2012-07-28 03:50:56

+0

傑克國王請編輯帖子,如果英文不可讀...非常感謝:) – IronManGill 2012-07-28 05:53:15

+0

謝謝@TejeshwarGill我的英語不好,我正在努力。 :) – NTTake 2012-07-30 02:22:29

回答

1

我不確定這是否是您要查找的內容,但此代碼可以告訴您,如果您的應用已通過在NSUserDefaults中存儲版本信息進行更新。

- (BOOL)wasUpdated { 
    // access NSUserDefaults 
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 

    // get previous version number from defaults 
    NSString *previousVersion = [defaults stringForKey:@"previousVersion"]; 

    // get current version number from info plist 
    NSString *currentVersion = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"]; 

    // check against previousVersion being nil 
    if (!previousVersion) { 
     // set current version to previous version 
     [defaults setObject:currentVersion forKey:@"previousVersion"]; 

     // previousVersion didn't exist and can't be checked, return NO 
     return NO; 
    } 

    // return YES if the versions are not the same 
    if (NSOrderedSame != [previousVersion compare:currentVersion]) return YES; 

    // return NO if they are the same 
    return NO; 
} 

希望這就是你所需要的。告訴我,如果我不明白你的意思。

+0

感謝@enbr你現在我怎麼能證明這一點? – NTTake 2012-07-30 02:21:52

+0

我不確定你的意思。我知道代碼將起作用。要運行它,你可以使用這樣的if語句。如果([self wasUpdated]){//已更新} – enbr 2012-07-30 23:02:20

+0

非常感謝 – NTTake 2012-07-30 23:44:17