2012-02-17 16 views
0

アプリケーションを更新するとき、古いバージョンでユーザーが選択した設定は、新しいバージョンに更新した後も維持する必要があります。ユーザーが新しいバージョンに更新したときにアプリケーションの設定を維持する方法

私は簡単な例でこれを説明してみましょう:

バージョン私のアプリの1.0はデフォルトでONですが、ユーザがOFFに設定することができますスイッチを持っています。 App Storeでは、次のバージョン1.1をいくつかの変更を加えて公開するつもりですが、同じスイッチもあります。ユーザーがデバイスから更新すると、スイッチの値はOFFのままになります。

どのように私はこれは親切にあなたの貴重なコメントを私に返信達成することができます...事前に

ありがとう...

答えて

2

あなたは、単に簡単にアプリケーション1.0が書いたものを読むことができNSUserDefaults

のApp 1.1を使用することができます。

0

あなたの1.1バージョンは先ほど保存を読み取る必要があるこの記事を参照してくださいだけで

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

のようなあなたのDocumentsディレクトリに:だから何あなたがやるべきことだけ(たとえば、文字列「YES SWITCH」)の設定を記述しています1.0のバージョンで書かれたユーザー設定。これは、このタイプのアップグレードを簡単にするために、保存されたユーザーデータにバージョニングメカニズムを組み込むことは良い考えです。

0

あなたのスイッチの値を保存して、最初のバージョンで取得して次のバージョンに適用できることを確認してください。アプリのアップデートを行うと、通常、私はすべてのユーザー設定とコンテンツを取得し、アプリケーションを初めて実行したときに呼び出すと、新しいバージョンで古い設定を適用します。幸運

1

あなたのアプリケーションを新しいバージョンにアップデートすると、UserDefaultに変更はありません(アプリケーションを削除しないと)。 次に、あなたのアプリが新しいバージョンにアップデートされたかどうかを検出する必要があります。私が私のアプリでやったのは、 "CurrentAppVersion"のようなUserDefaultの変数を維持していて、その後、アプリが起動されたときに、アプリのバンドルから取得した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. 
} 

が、それはあなたの多くを助けるホープ:)

関連する問題