Структура списка свойств и содержание

Списки свойств создаются из основного Базового CFString типов Основы, CFNumber, CFBoolean, CFDate и CFData. Для создания сложной структуры данных из этих основных типов Вы помещаете их в CFDictionary или CFArray. Для упрощения программирования со списками свойств любой из типов списка свойств может также быть отнесен в использование ссылки типа CFPropertyListRef.

CFPropertyList обеспечивает абстракцию для всех типов списка свойств — можно думать о CFPropertyList в объектно-ориентированных условиях, как являющихся суперклассом CFString, CFNumber, CFDictionary, и т.д. Когда Базовая функция Основы возвращает a CFPropertyListRef, это означает, что значение может быть любым из типов списка свойств. Например, CFPreferencesCopyAppValue возвраты a CFPropertyListRef. Это означает, что значение возвратилось, может быть объект CFString, объект CFNumber, объект CFDictionary, и т.д. снова. Можно использовать CFGetTypeID определить, какой объект значение списка свойств.

В объекте CFDictionary данные структурированы как пары ключ/значение, где каждый ключ является строкой, и значение ключа может быть CFString, CFNumber, CFBoolean, CFDate, CFData, CFArray или другим объектом CFDictionary. Если Вы используете объект CFDictionary в качестве списка свойств, все его ключи должны быть объектами CFString.

В объекте CFArray данные структурированы как упорядоченный набор объектов, к которым может получить доступ индекс. В списке свойств объект CFArray может содержать любой из основных типов списка свойств, а также объекты CFDictionary и другие объекты CFArray.

Несмотря на то, что CFDictionary и объекты CFArray могут содержать типы данных кроме типов списка свойств, если они делают, Вы не можете использовать Базовый интерфейс программирования списка свойств Основы для работы с ними.