「Core Foundation」の版間の差分

削除された内容 追加された内容
編集の要約なし
m編集の要約なし
8行目:
'''Core Foundation'''は[[Cocoa]]のFoundationに相当するものを[[C言語]]で記述したもの。実装をCへ移した理由は、[[Carbon]]との共有コードベースを備える為だと考えられる。
 
Core Foundationは[[オープンソース]]の[[Darwin (オペレーティングシステム)|Darwin]]の一部なので必要なら[[ソースコード]]を見ることができる。C言語で書かれているものの、[[オブジェクト指向]]の雰囲気は残しており、[[参照カウンタ]]を用いたメモリ管理など[[Objective-C]]に近いものになっている。Core FoundationのオブジェクトはCFTypeと呼ばれるopaqueな構造体であり、ヘッダ部をObjective-C互換にする事でメッセージ送信との混在利用が可能としている (toll-free bridge)。
 
Core Foundationに含まれるものはCFで始まる名前がつけられている。たとえばCFString(NSStringCFString(NSStringに相当)CFArray(NSArrayCFArray(NSArrayに相当)、Mac OS X 10.3以降ではCFStream(NSStreamCFStream(NSStreamに相当)など。他に[[Quartz]]のCGXXX、SearchKitのSKXXXなどもCFType互換となっており、相関性の高いインターフェースを備えている。
 
Core Foundationの本家であるCocoaもまずはC言語で実装し、それをObjective-Cでラップするという流れになっているようである。
 
Mac [[OS X]]での実装が基本であるが、主たる機能がCoreFoundation.dll、CoreGraphics.dll等の形で[[Microsoft Windows|Windows]]上に移植されている。
これらのライブラリは、同社のWeb[[ウェブブラウザ]][[Safari]]の移植に活用されている。[[アプリケーションプログラミングインタフェース|API]]そのものは公開されていないが、一部のユーザーによって、同DLLでCoreFoundationの機能をWindows上で実現させる方法が発見されている。{{要出典|date=2012年4月|}}。
 
== 外部リンク ==