プロパティリストの構造と内容
プロパティリストは、基本的な Core Foundation 型の CFString、CFNumber、CFBoolean、CFDate、および CFData から作成されます。これらの基本型から複雑なデータ構造体を構築するには、それらを CFDictionary または CFArray の中に入れます。プロパティリストを使用したプログラミングを簡素化するために、プロパティリストタイプのいずれも CFPropertyListRef 型の参照を使用して参照することができます。
CFPropertyList は、すべてのプロパティリスト型の抽象化を提供します。CFPropertyList は、オブジェクト指向の用語で CFString、CFNumber、CFDictionary などなどのスーパークラスであると考えることができます。Core Foundation 関数が CFPropertyListRef を返すとき、その値が任意のプロパティリスト型であることを意味します。たとえば、CFPreferencesCopyAppValue は CFPropertyListRef を返します。これは、返される値が CFString オブジェクト、CFNumber オブジェクト、CFDictionary オブジェクトなどなどであることを意味します。CFGetTypeID を使用して、プロパティリスト値がどの型のオブジェクトであるかを判断できます。
CFDictionary オブジェクトでは、データはキー値のペアとして構成され、各キーは文字列で、キーの値は CFString、CFNumber、CFBoolean、CFDate、CFData、CFArray、または別の CFDictionary オブジェクトです。 CFDictionary オブジェクトをプロパティリストとして使用する場合、そのすべてのキーは CFString オブジェクトで なければなりません。
CFArray オブジェクトでは、データはインデックスでアクセスできるオブジェクトの順序付きコレクションとして構成されます。プロパティリストでは、CFArray オブジェクトには基本的なプロパティリスト型のほか、CFDictionary オブジェクトや他の CFArray オブジェクトを含めることができます。
CFDictionary および CFArray オブジェクトには、プロパティリスト型以外のデータ型を含めることができますが、そうであれば、Core Foundation プロパティリストプログラミングインターフェイスを使用してそれらを操作することはできません。
前の章 次の章