2012-02-17 81 views
0

當我們更新應用程序,這是由舊版本的用戶選擇的設置應保持更新到新版本之後。如何保持應用程序的設置,當用戶更新到新版本

讓我一個簡單的例子來解釋:

版本我的應用程序的1.0有一個開關是在缺省情況下,但用戶可以設置爲OFF。在App Store中,我將發佈下一個版本 - 1.1 - 進行一些修改,但它也具有相同的開關。當用戶從設備更新它時,開關值應該保持關閉狀態。

我怎樣才能做到這一點親切與您的寶貴意見回覆我...

Thanx提前...

回答

2

您可以簡單地使用NSUserDefaults

應用1.1可以輕鬆地閱讀什麼應用1.0寫道。

0

在申請文件目錄和圖書館目錄的內容的應用程序更新後不會改變。所以,你應該做的是剛剛寫的設置(比如字符串「SWITCH:YES」)將文檔目錄就像

[string writeToFile:<#(NSString *)#> atomically:<#(BOOL)#> encoding:<#(NSStringEncoding)#> error:<#(NSError **)#>]; 

看到這個帖子Retaining data after updating application

0

你的1.1版本只需要讀取保存用戶設置由1.0版本編寫。這是將版本管理機制放入保存的用戶數據中的一個原因,因爲這種升級很簡單。

0

肯定你是你的第一個版本的一些中,節省您的交換機值,因此你可以得到它,並在下一版本中應用它。對於我,當我作出更新的應用程序,我通常建立在它裏面一個落後的可計算類我檢索所有用戶設置和內容,並調用它的第一次應用程序運行,然後我申請對新老版本的設置。祝你好運

1

當你更新應用到新的版本,那麼UserDefault沒有變化(如果不刪除應用程序)。 然後我們要做的是檢測你的應用是否更新到新版本。我在我的應用程序所做的就是保持UserDefault一個變量,如「CurrentAppVersion」,那麼當應用程序啓動我檢查從應用程序捆綁獲取CURRENTVERSION,如果他們是差了起來,然後我我的設置遷移到新的版本和更新「CurrentAppVersion」也是一個新版本。

參考: https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSUserDefaults_Class/Reference/Reference.html

NSUserDefaults *userDefault = [NSUserDefaults standardUserDefaults]; 
NSString *currentAppVersion = [userDefault objectForKey:@"CurrentAppVersion"]; 

NSString *appVersion = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"]; 
NSLog(@"current version: %@, appversion: %@", currentAppVersion, appVersion); 

if ([currentAppVersion isEqualToString:appVersion] == NO) { 
    // Your app has just updated to new version, migrate your app settings. 
} else { 
    // NO, do nothings with your app settings. 
} 

希望它可以幫助你很多,:)

相關問題