これは重複していないことを本当に願っていますが、他のSOの投稿で正直に答えを見つけることはできません。NSUserDefaultsが失敗し、データを取得していません
私のアプリケーションデリゲートでは、TopScoreLevel1
の値を0
に設定しました。その後、アプリで私は、このコードのスニペットを実行します。
NSLog(@"This is your new score: %@", newScoreString);
[[NSUserDefaults standardUserDefaults] setObject:@"xxx" forKey:@"TopScoreLevel1"];
BOOL fail = [[NSUserDefaults standardUserDefaults] synchronize];
if (!fail){
NSLog(@"success.");
} else {
NSLog(@"fail.");
}
NSString *printRecorded = [[NSUserDefaults standardUserDefaults] stringForKey:@"TopScoreLeve1"];
NSLog(@"Class: User Score. DID USER DEFAULTS SAVE? --> %@", printRecorded);
新しいスコアが正常値を出力しますが、私のsynchronizeメソッドは失敗します。 printRecorded
の値は(null)
です。奇妙な。何か案は?
このハードコーディングされた文字列キーは、デバッグ中にクラックするハードナットになる可能性があります –