Список свойств

Список свойств является представлением иерархии объектов, которые могут храниться в файловой системе и перераспределены позже. Списки свойств дают приложениям легкий и переносимый способ сохранить мелкие суммы данных. Они - иерархии данных, сделанных из определенных типов объектов — они - в действительности, граф объектов. Списки свойств просто создать программно и еще проще сериализировать в представление, которое является персистентным. Приложения могут позже считать статическое представление назад в память и воссоздать исходную иерархию объектов. И Основе Какао и Базовой Основе связали APIs с сериализацией списка свойств и десериализацией.

Типы списка свойств и объекты

Списки свойств состоят только из определенных типов данных: словари, массивы, строки, числа (целое число и плавание), даты, двоичные данные и булевы значения. Словари и массивы являются специальными типами, потому что они - наборы; они могут содержать один или многократные типы данных, включая другие словари и массивы. Это иерархическое вложение объектов создает график объектов. Абстрактные типы данных имеют соответствующие Фундаментальные классы, Базовые типы Основы и элементы XML для объектов коллекции и оценивают объекты, как показано в следующем списке:

Абстрактный тип

Класс платформы основы

Базовый тип Основы

Элемент XML

Массив

NSArray

CFArrayRef

<array>

Словарь

NSDictionary

CFDictionaryRef

<dict>

Строка

NSString

CFStringRef

<string>

Данные

NSData

CFDataRef

<data>

Дата

NSDate

CFDateRef

<date>

Целое число

NSNumber (intValue 32-разрядный)

NSNumber (integerValue 64-разрядный)

CFNumberRef (kCFNumberSInt32Type)

CFNumberRef (kCFNumberSInt64Type)

<integer>

Значение с плавающей точкой

NSNumber (floatValue 32-разрядный)

NSNumber (doubleValue 64-разрядный)

CFNumberRef (kCFNumberFloat32Type)

CFNumberRef (kCFNumberFloat64Type)

<real>

Булевская переменная

NSNumber (boolValue)

CFBooleanRef

<true/> или <false/>

Непостоянные версии Фундаментальных классов также поддерживаются.

Коллективно, экземпляры этих классов известны как объекты списка свойств. Например, NSMutableDictionary объект является объектом списка свойств, как NSNumber объект, NSString объект, и т.д. Для списка свойств, чтобы быть допустимыми, все объекты в графе объектов должны быть объектами списка свойств.

Методы наиболее успешной практики для списков свойств

Можно выписать списки свойств и в XML и в двоичных форматах. Двоичный формат намного более компактен, чем версия XML и таким образом более эффективен. Это рекомендуется для большинства ситуаций. Если Вы когда-нибудь должны, Однако можно вручную отредактировать список свойств XML. Файлы списка свойств имеют расширение файла plist.

Когда объекты имеют переменные настройки переменчивости, Вы не должны использовать списки свойств для хранения больших, сложных графиков объектов, особенно. И Вы не можете использовать списки свойств, чтобы хранить объекты, не поддерживающиеся архитектурой, такой как объекты модели. Для этих случаев используйте архивацию вместо этого. Несмотря на то, что списки свойств могут включать NSData объекты, лучше не использовать объекты данных в списках свойств для содержания больших сумм двоичных данных.

Сериализация списка свойств

Чтобы сериализировать и десериализовать списки свойств, вызовите надлежащие методы класса NSPropertyListSerialization класс или, при использовании Базовой Основы, средства имели отношение к CFPropertyListRef непрозрачный тип. В Какао сериализированный вывод находится в форме NSData объект. Можно поэтому использовать методы того класса (например, writeToFile:atomically:) записать что данные в файловую систему и использовать надлежащее NSData память фабрики классов для чтения его назад в память. Затем при десериализации его можно указать опции переменчивости для списка свойств.

Необходимые как условие статьи

Проекты примера кода

  • Люди