2016-08-09 59 views
0

Wenn wir Null für einen Schlüssel in Benutzerstandards setzen, löscht es den Schlüssel auch. Was, wenn wir das Objekt löschen möchten, aber den Schlüssel intakt. Wie geht das. Jede Hilfe wird spürbar sein. DankeiOS NSUserDefaults entfernen Objekt für Schlüssel, aber löschen Sie nicht den Schlüssel

+0

Sie speichern Array oder Wörterbuch oder benutzerdefiniertes Objekt? –

+0

Registrieren Sie einen Standardwert für diesen Schlüssel in 'NSUserDefaults' und stellen Sie dann diesen Standardwert wieder her. – vadian

+0

Was ist los mit dem Löschen des Schlüssels und Umgang mit ihm während des Lesens? – Droppy

Antwort

-1

Versuchen Sie, [NSNull null] für diesen Schlüssel festzulegen.

[[NSUserDefaults standardUserDefaults] setObject:[NSNull null] forKey:@"key"]; 
[[NSUserDefaults standardUserDefaults] synchronize]; 
+0

Dies wird abstürzen, weil NSNull nicht von NSUserDefaults unterstützt wird. – gnasher729

0

NSUserDefaults unterstützt NSNull nicht. Sie müssten also jeden Wert finden, den Sie "keine Daten" darstellen möchten und diesen einstellen. Zum Beispiel eine leere Zeichenfolge, ein leeres Array oder ein leeres Wörterbuch. Sie können dann zwischen einem Ergebnis von Null (Standardwert wurde nie festgelegt), Ihrem Markerwert (der angibt, dass der Wert von Ihnen festgelegt wurde, aber nichts bedeutet) oder einem gewöhnlichen Wert unterscheiden.

+0

Es ist immer noch nicht klar, warum Sie es nicht einfach löschen und während eines Lesevorgangs verwalten können ... – Droppy