Как сохранить значения даже после перезапуска приложения?

При создании приложений с помощью ApplescriptObjC вы можете создать такое свойство:

property myValue : "value"

Однако, если я изменю значение этой переменной, оно будет возвращаться к «значению» при каждом перезапуске приложения. Как сохранить значения, чтобы они не сбрасывались после перезапуска приложения?


person James    schedule 27.04.2016    source источник


Ответы (1)


Вам нужно будет где-то сохранить свое значение, прежде чем ваше приложение завершит работу. Использование NSUserDefaults — лучший подход:

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

Чтобы сохранить значение, используйте следующий код, где myKey может быть любой строкой, а val — значением, которое вы хотите сохранить:

NSUserDefaults's setObject:val forKey:myKey

Чтобы получить значение позже, вы можете использовать:

NSUserDefaults's objectForKey:myKey

Кстати, в NSUserDefaults есть несколько полезных функций для получения значений в зависимости от типа хранимых данных. Например, если вы храните логическое значение, вы можете использовать "boolForKey:".

Однако вам следует установить значение по умолчанию для вашего ключа на случай, если он никогда ранее не сохранялся. Это необходимо сделать перед попыткой получить значение для вашего ключа, где defVal — это значение по умолчанию:

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

Если вы хотите узнать больше о NSUserDefaults, вы можете прочитать об этом здесь: https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSUserDefaults_Class/

person ATLief    schedule 27.04.2016