Ich habe gelesen und verstanden, wie NSUserDefaults
zum Speichern von Einstellungen für meine App im Dateisystem verwendet werden kann. Mir ist auch bewusst, dass Voreinstellungen registriert werden müssen, bevor sie später in der App verwendet werden.
Ich bin mir jedoch nicht sicher, ob es in Ordnung ist, Standardwerte aus verschiedenen Klassen in meiner App zu registrieren. Zum Beispiel möchte ich in AppDelegate
eine Einstellung registrieren, die zur gesamten App gehört, aber in einer Theme-Klasse möchte ich Einstellungen verwenden und damit registrieren, die nur zum Abrufen und Festlegen des Themas der App verwendet werden. Weitere Klassen haben ihre eigenen Bedürfnisse, was die Benutzereinstellungen betrifft. Dies gilt für mehrere Teile eines Projekts, an dem ich arbeite.
Ist dies der Weg, um die Präferenzen bei den Klassen zu halten, die sie zur richtigen Arbeitsweise haben?
Ja, Sie können Standardwerte aus mehreren Klassen registrieren. Wenn Sie einen neuen Standard registrieren, fügt er das neue Schlüssel / Wert-Paar nur zur Registrierungsdomäne hinzu (es gibt nur eine davon für die App). Ich denke, die Art, wie du es machst, ist ziemlich vernünftig.
Die NSUserDefaults beziehen sich auf die gesamte Anwendung. Es ist also nicht wichtig, wo Sie sie lesen / speichern: Die Schlüssel sind für jede Klasse sichtbar, selbst wenn sie in einer anderen Klasse eingestellt sind.
Ich persönlich versuche, meine eigenen Schemata zu verwenden, daher könnten verwandte Einstellungen "nah" sein.
d. h .:
%Vor%Ich hoffe, es hilft.
Dies ist nicht notwendig, aber wenn Sie Ihre Voreinstellungsdatei nach Klassen sortieren möchten, können Sie den Klassennamen als Teil des Schlüssels angeben. Zum Beispiel:
%Vor% Dabei ist prefName
der Name der von Ihnen gespeicherten Voreinstellung. Auf diese Weise können Sie denselben Präferenznamen mit verschiedenen Klassen verwenden und sich nicht darum kümmern, dass sie sich gegenseitig überschreiben. Aber wie andere gesagt haben, kann NSUserDefaults
von einem beliebigen Ort in der Anwendung aufgerufen werden, es sei denn, Sie haben eine spezielle Notwendigkeit dafür.
Tags und Links iphone ios ipad nsuserdefaults preferences