NSUserDefaults メソッドを使用してデータを保存します。int と NSMutableArray を保存します。
アプリが終了したり、バックグラウンドに入ったり、別のビューに切り替えたりすると、int が適切に保存されます。アプリがバックグラウンドに入ったときと別のビューに切り替わったときに配列が保存されますが、int と NSMutableArray にまったく同じコードを使用しているにもかかわらず、シミュレーターを終了して戻ってくるたびに保存されるわけではありません。
NSMutableArray を定義するコードは次のとおりです。
array = [[NSMutableArray alloc] init];
if ([prefs objectForKey:@"array"] != nil) {
array = [prefs objectForKey:@"array"];
}
そして、それを編集して保存します:
[array addObject:anObject];
[prefs setObject:array forKey:@"array"];
[prefs synchronize];
int には、配列部分と int 部分の間の変更を除いて、まったく同じコードがあります。
誰が何が悪いのか教えてもらえますか? 関連する多くの質問を確認しましたが、どれも私の問題を解決しませんでした。
前もって感謝します。