Core FoundationはCocoaのFoundationに相当するものをC言語で記述したもの。実装をCへ移した理由は、Carbonとの共有コードベースを備えるため。

Core FoundationはオープンソースのDarwinの一部であるため、必要に応じてソースコードを閲覧することができる。C言語で書かれているものの、オブジェクト指向の雰囲気は残しており、参照カウンタを用いたメモリ管理などObjective-Cに近いものになっている。Core FoundationのオブジェクトはCFTypeと呼ばれる不透明 (opaque) な構造体であり、ヘッダー部をObjective-C互換にすることでメッセージ送信との混在利用が可能としている (toll-free bridge)。

Core Foundationに含まれるものはCFで始まる名前がつけられている。たとえばCFString(NSStringに相当)やCFArray(NSArrayに相当)、Mac OS X v10.3以降ではCFStream(NSStreamに相当)など。他にQuartz (Core Graphics) のCGXxx、SearchKitのSKXxxなどもCFType互換となっており、相関性の高いインターフェースを備えている。

Core Foundationの本家であるCocoaもまずはC言語で実装し、それをObjective-Cでラップするという流れになっている。

macOSでの実装が基本であるが、主たる機能がCoreFoundation.dll、CoreGraphics.dll等の形でWindows上に移植されている。 これらのライブラリは、同社のウェブブラウザSafariの移植に活用されていた。APIそのものは公開されていないが、。

脚注

注釈

出典

外部リンク Core Foundation - ADC