多形関数
Core Foundation には、いくつかの多形関数が用意されています。これらの関数は、任意の Core Foundation オブジェクトをパラメータとして取ることができ (一例では、CFRetain)、任意の Core Foundation オブジェクトを返すことができます。これらのパラメータと戻り値には、汎用オブジェクト参照型の CFTypeRef の型が与えられます。CFType はオブジェクト指向言語のルートクラスに似ており、なぜなら、その関数は他のすべてのオブジェクトによって再利用できるからです。
すべての Core Foundation オブジェクトに共通する多形関数の操作を使用して下さい。
- 参照カウント。
- オブジェクトの比較
- ハッシュオブジェクト。
- オブジェクトの検査。
CFType は、オブジェクトの参照カウントを操作して取得するためのいくつかの多形関数を提供します。これらの関数の詳細については、Core Foundation のためのメモリ管理プログラミングガイド を参照してください。
CFEqual 関数は、2 つの Core Foundation オブジェクトをどれでも比較します(オブジェクトの比較 を参照の事)。等しい事の根拠は、比較されるオブジェクトの型によって異なります。例えば、両方が CFString オブジェクトである場合、テストは文字単位の比較を含みます。
CFHash 関数は、Core Foundation オブジェクトを識別する一意のハッシュコードを返します(オブジェクトの比較 を参照の事)。ハッシュコードを、ハッシュテーブル構造体のテーブルアドレスとして使用できます。2 つのオブジェクトが等しい(CFEqual 関数で決定されます) 場合、それらは同じハッシュ値を持たなければなりません。
CFType は、オブジェクトを検査して、その内容とそのオブジェクトが "属している" 型について学習する手段を提供します。CFCopyDescription 関数は、オブジェクトを記述する文字列 (より正確には CFString オブジェクトへの参照) を返します。CFCopyTypeIDDescription 関数は、CFTypeRef パラメーターではなく CFTypeID を取り、これは、型 ID で識別される不透明型を表す文字列参照を返します。これらの関数は、主にデバッグを支援することを目的としています。これらの関数の詳細については、オブジェクトの検査 を参照してください。
CFGetTypeID 関数を使用して型 ID を取得して、その値を既知の型 ID と比較することによって、一般的に型指定されたオブジェクトが属する不透明型を判別することもできます。このタスクの詳細については、オブジェクトの検査 を参照してください。
前の章 次の章