In der Dokumentation ist nicht klar, wie Sie %code% mit Randfällen verwenden können.
Wenn ich einen Wert festlegen möchte, muss ich einen Wert für %code% und %code% festlegen, da iCloud deaktiviert werden könnte. In meinen Tests gibt %code% jedoch ein gültiges Objekt zurück, auch wenn iCloud deaktiviert ist (getestet unter Mac OS).
Nach meinem Verständnis ist auch, wenn iCloud aktiviert ist, die Werte von %code% auf dem Datenträger gespeichert (und offline verfügbar). Was ist der Grund, NSUserDefaults zu verwenden, wenn Sie sicher sind, dass Sie weniger als 64 KB Daten haben?
Die obige Antwort von Mugunth Kumar funktioniert wunderbar, wenn Sie alle Ihre NSUserDefaults synchronisieren möchten!
Es ist jedoch ein ALLES oder NICHTS Ansatz. Sie können die Standardeinstellungen, die Sie synchronisieren möchten, nicht auswählen oder auswählen.
Ich habe dieses Tutorial gefunden, das hilfreich sein könnte, wenn Sie wählerischer sein möchten.
Ich habe eine einfache iOS-Kategorie geschrieben, mit der ein Wert auch in NSUbiquitousKeyValueStore gespeichert werden kann, während er in NSUserDefalt gespeichert wird.
hoffe diese Hilfe: Ссылка
Ich benutze Ссылка
Es ist eine einfache Klasse, geschrieben von Mugunth Kumar (Danke!), die die Arbeit für Sie erledigt ... Wenn Sie keine besonderen Bedürfnisse haben, fügen Sie eine Codezeile hinzu und es wird alles Lesen und Schreiben an iCloud erledigen ... Alles, was Sie tun müssen, ist wie üblich in NSUserDefaults zu lesen und zu schreiben ...
Bearbeiten:
Wenn Sie ein Objekt aus NSUserDefaults entfernen, wird der Code, den ich oben verlinkt habe, das Objekt nicht aus der Cloud entfernen. Wann immer Sie ein Objekt aus NSUSerDefaults entfernen, machen Sie dasselbe wie NSUbiquitousKeyValueStore:
%Vor%