この記事には複数の問題があります。改善ノートページでの議論にご協力ください。 出典がまったく示されていないか不十分です。内容に関する文献や情報源が必要です。(2016年2月) 古い情報を更新する必要があります。(2016年2月) 独自研究が含まれているおそれがあります。(2016年2月) 言葉を濁した曖昧な記述になっています。(2016年2月)出典検索?"Core Foundation" – ニュース · 書籍 · スカラー · CiNii · J-STAGE · NDL · dlib.jp · ジャパンサーチ · TWL

Core FoundationCocoaのFoundationに相当するものをC言語で記述したもの。実装をCへ移した理由は、Carbonとの共有コードベースを備えるためだと考えられる[独自研究?]

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

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

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

macOSでの実装が基本であるが、主たる機能がCoreFoundation.dll、CoreGraphics.dll等の形でWindows上に移植されている。 これらのライブラリは、同社のウェブブラウザSafariの移植に活用されていた。APIそのものは公開されていないが、一部のユーザーによって、同DLLでCore Foundationの機能をWindows上で実現させる方法が発見されている[要出典]

脚注

[編集]
[脚注の使い方]

注釈

[編集]
  1. ^ 前方宣言だけがなされた不完全な型。

出典

[編集]
  1. ^ 第4回 plist(プロパティリスト)とFoundation【後編】:Undocumented Mac OS X(3/3 ページ) - ITmedia エンタープライズ”. ITmedia (2007年5月30日). 2023年3月15日閲覧。

外部リンク

[編集]