Всем доброго хабрадня!
Сегодня я бы хотел рассказать о некоторых аспектах сохранения настроек и прочих данных программы в OS X и/или iOS. Как обычно, у нас есть несколько вариантов: Core Data, «голый» SQLite, свои бинарные форматы, свои текстовые форматы, NSUserDefaults и, как Вы уже наверняка слышали, файлы типа PLIST, то есть XML Property List.
Вкратце, plist-файлы представляют из себя обычный XML, но с некоторыми оговорками. К примеру, порядок тегов в нём обусловлен некоторыми правилами: они идут парами «ключ-значение», но теги типа «ключ» и теги типа «значение» располагаются на одном уровне. Типичный пример:
<key>identifier</key>
<string>j3qq4-h7h2v</string>
Плисты умеют хранить основные типы данных Cocoa: NSString, NSNumber (int, float, BOOL), NSDate, NSArray, NSDictionary и NSData. Этим типам соответствуют следующие теги: <string>, <integer>, <real>, <true/>, <false/>, <date>, <array>, <dict>, <data>
. Собственно, plist состоит из тегов <key>
, за которыми следуют перечисленные теги со значением.
Под катом — описание дополнительных ограничений и, что самое главное, API для работы с такими файлами.
Читать полностью »