Property List и NSUserDefaults

Property List​­ это просто определение термина. Он означает AnyObject​, который, является коллекцией объектов, которыми может быть ТОЛЬКО один из следующих типов:

NSString, NSArray, NSDictionary, NSNumber, NSData, NSDate. Property List​ используются для передачи данных “вслепую”

NSUserDefaults — это по сути механизм сохранения данных типа Property List. Его можно представить как маленькую базу данных для хранения чего-то небольшого. Например настройки программы, прогресс в игре, предпочтения  и т.д. Хранить большие объемы информации, такие как картинки или музыку, в NSUserDefaults Apple не рекомендует.

NSUserDefaults​ как Dictionary, но он может запоминать только Property List​. Основное достоинство NSUserDefaults ​​заключается в том, что он запоминает постоянно, то есть приложение можно завершить, а данные в NSUserDefaults ​останутся. И при  следующем запуске эти данные можно извлечь.

//
// proSwift.ru
//

let defaults = NSUserDefaults.standardUserDefaults() // получили экземпляр класса NSUserDefaults

let plist: AnyObject = defaults.objectForKey(String) // записали объект 
defaults.setObject(AnyObject, forKey: String) // записали объект (AnyObject должен быть PropertyList)

if !defaults.synchronize() // Запись данных



​arrayForKey(String) -­> Array <AnyObject>?​ // возвращает nil​, если значение не установлено или нет массива

// NSUserDefaults​может хранить / извлекать маленькие кусочки данных...

setDouble(Double, forKey: String)

doubleForKey(String) ­> Double​​// не Optional, возвращает 0, если нет такого ключа

На 6-ой строке мы принудительно заставили систему записать данные, хотя это и не обязательно. Система производит запись самостоятельно. Но для того, чтобы быть уверенными, можно написать и эту строку кода.

Метки: ,

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.