2016-04-27 12 views
0

Bei Anwendungen mit ApplescriptObjC erstellen, können Sie eine Eigenschaft wie folgt erstellen:Wie können Werte gespeichert werden, nachdem die Anwendung neu gestartet wurde?

property myValue : "value" 

Wenn ich jedoch den Wert dieser Variablen ändern, wird es auf „Wert“ zurückkommen, wenn die Anwendung neu gestartet. Wie kann ich Werte speichern, damit sie nach dem Neustart der Anwendung nicht zurückgesetzt werden?

Antwort

2

Sie müssen Ihren Wert irgendwo speichern, bevor Ihre Anwendung beendet wird. Mit NSUserDefaults ist der beste Ansatz:

property NSUserDefaults : ((current application)'s NSUserDefaults's standardUserDefaults) 

Um Ihren Wert zu speichern, verwenden Sie den folgenden Code, wo myKey eine beliebige Zeichenfolge sein kann, und val ist der Wert, den Sie speichern möchten:

NSUserDefaults's setObject:val forKey:myKey 

Ihr Wert abzurufen später, können Sie verwenden:

NSUserDefaults's objectForKey:myKey 

NSUserDefaults hat übrigens mehrere nützliche Funktionen zum Abrufen von Werten, abhängig von der Art der gespeicherten Daten. Wenn Sie beispielsweise einen booleschen Wert speichern, können Sie "boolForKey:" verwenden.

Sie sollten jedoch einen Standardwert für Ihren Schlüssel festlegen, falls dieser noch nie zuvor gespeichert wurde. Dies muss vor getan werden versuchen, den Wert für Ihren Schlüssel abzurufen, wo DEFVAL ist der Standardwert:

NSUserDefaults's registerDefaults:((current application)'s NSDictionary's dictionaryWithObject:defVal forKey:myKey) 

Wenn du mehr über NSUserDefaults wissen möchten, können Sie es hier lesen: https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSUserDefaults_Class/

Verwandte Themen