Wenn Speichern von Werten in NSUserDefaults
verhindern:Wie Protokollmeldung „Überspringen Einstellung bereits vorhandenen Wert für Schlüssel“
[[NSUserDefaults standardUserDefaults] setValue:myValue forKey:@"myKey"];
..., wenn der Wert vorlag, wurde bereits, Xcode 8 protokolliert:
2016-07-14 09: 59: 04.081806 MyAppName [52232: 2561291] [Benutzervorgaben] CFPrefsPlistSource < 0x7941d950> (Domäne: com.myAppBundle, Benutzer: kCFPreferencesCurrentUser, ByHost: Nein, Container: (null)) Einstellung bereits überspringen- aktueller Wert für Schlüssel myKey
1) Kann ich Xcode bitten, dies nicht zu protokollieren?
2) Oder sollte ich die Gleichheit der zuvor gespeicherten Werte vergleichen, bevor Sie setValue:forKey:
verwenden? [Tochtergesellschaft Frage]
Beispiel:
if (![[NSUserDefaults standardUserDefaults] valueForKey:@"myKey"] isEqual:myValue])
[NSUserDefaults standardUserDefaults] setValue:myValue forKey:@"myKey"];
3) oder sollte ich dies durchzuführen mit einem Gewinde sichere Verriegelung Vergleichen zweimal den gleichen Wert zwischen der Anweisung zu vermeiden Speichern, wo ich vergleichen und die Anweisung, Ich benutze setValue:forKey:
? [Tochtergesellschaft Frage]
Beispiel:
@synchronized ([NSUserDefaults standardUserDefaults]) {
if (![[NSUserDefaults standardUserDefaults] valueForKey:@"myKey"] isEqual:myValue])
[NSUserDefaults standardUserDefaults] setValue:myValue forKey:@"myKey"];
}