オブジェクト参照
参照によって、Core Foundation オブジェクト(不透明型) を参照して下さい。不透明型のすべてのヘッダーファイルで、以下のような行が表示されます。
typedef const struct __CFArray * CFArrayRef; typedef struct __CFArray * CFMutableArrayRef;
これらの宣言は、不透明型を定義する(private) 構造体の不変および可変バージョンへのポインタ参照です。多くの Core Foundation 関数のパラメータと戻り値は、これらのオブジェクト参照の型を取りますが、private 構造体の typedef では決してありません。例えば:
CFStringRef CFStringCreateByCombiningStrings(CFAllocatorRef alloc, CFArrayRef array, CFStringRef separatorString);
不透明型オブジェクトの不変型、可変型およびその他の変形についての詳細は、様々なオブジェクト を参照してください。
すべての Core Foundation の不透明型では、CFArray オブジェクト上の CFArrayRef のように、そのオブジェクトの一意の型 ID を定義します。型 ID は、Core Foundation オブジェクトが "属する" 不透明型を識別する CFTypeID 型の整数です。異種コレクションで操作する場合など、さまざまなコンテキストで型 ID を使用して下さい。Core Foundation は、型 ID を取得して評価するためのプログラムインタフェースを提供します。
さらに、Core Foundation は、汎用オブジェクト参照型の CFTypeRef を定義しており、一部のオブジェクト指向プログラミング言語のルートクラスに似ています。この汎用参照は、ある Core Foundation オブジェクトへの参照を取ることができる多形関数のパラメータと戻り値のプレースホルダ型として機能します。このテーマの詳細については、多形関数 を参照してください。オブジェクト参照を使用する場合のメモリ管理に関する問題については、Core Foundation のためのメモリ管理プログラミングガイド を参照してください。
前の章 次の章