Ich bin aktuell dabei (ein Neujahrsprojekt) ein iOS Projekt zu vollenden. Es ist nur ein kleines Helferlein, das mir von einem beliebigen Datum die Kalenderwoche anzeigen soll.
Wenn das Programm nun beendet oder unterbrochen wird stellt sich mir die Frage, wie soll ich bestimmen, ob das Programm neu gestartet wurde oder nur aus dem Backgroundmode zurück kommt? Und der Anwender soll bestimmen können, wie das Verhalten für ihn am Besten anzuwenden ist. Hier kommt nun die Singleton-Klasse NSUserDefaults ins Spiel.
Das Verwenden der Klasse ist recht einfach. Was ich für mich klären wollte
- Wie kann ich Factory Settings definieren?
- Wie werden Factory Settings angewendet?
- Wann ist der optimale Zeitpunkt zum Speichern der geänderten Settings?
Laut Doku wird dafür registerDefaults
verwendet. Bedingung ist, es müssen Objekte in einem NSArray gespeichert werden. Wie geht das? Mit der Klasse NSNumber
. Mit dieser Klasse kann ich nun meine BOOL
Werte mit [NSNumber numberWithBool:YES]
als Einstellung speichern. Das Abfragen der Werte erfolgt dann wieder über das NSNumber-Objekt mit [[NSUserDefaults standardDefaults] boolForKey:@"keyName"
. Die Werte aus dem registerDefaults werden dann verwendet, wenn es keinen Benutzersetting gibt.