Mac OS Xにおいてオブジェクトの永続化に用いられるファイル形式plist。今回から2回にわたって、plistとこれに対応するFoundationフレームワークがMac OS Xをどのように支えているのか解説する。
plistとは、Mac OS Xにおけるオブジェクトの永続化*に用いられるファイル形式で、文字列、数値、バイナリデータといった基本的な要素および配列、ディクショナリといった集合をサポートしている。また、第1回で取り上げたlaunchdだけではなく、CocoaやCarbon*といったアプリケーション向けのフレームワークから、果てはIOKitといったデバイスドライバまで、Mac OS Xのあちこちでplistは共通的に用いられている。
詳細は後述するが、特にCocoaでは、その基盤となるFoundationフレームワークに用意されているNSString、NSNumber、NSData、NSDate、それからNSArray、NSDictionaryといった基本データクラスと1対1対応していることから、簡単にplistの読み書きができるようになっている(表1)。またCarbonにおいても、CoreService*の一部であるCoreFoundationを利用することで、Cocoaと同レベルの読み書きが可能だ。
このほかplistは、Mac OS Xにおける基本的なデータの表現方法ともなっている。iTunesの曲目を管理するiTunes Music Library.xmlファイル、アプリケーションやデバイスドライバ(kext)、プラグインといったバンドル*の中に必ず存在するパッケージのメタデータを収めたInfo.plist、アプリケーションの各ユーザーごとの設定情報を管理するUser Defaults(Preferences)など利用例は多岐にわたる。
メモリ上に生成したオブジェクト(のインスタンス)の内容をファイルなどに記録し、プログラムが終了しても内容を保持すること、またはそのための機能を指す。再度必要となったときにファイルを読み取って復活させる。
それぞれアプリケーション向けのAPIセットの名称。CocoaはNeXTSTEPのObjective-Cのクラスライブラリをベースとしている。Carbonは旧MacOSのToolboxを参考に、より優れたAPIにまとめ直されている。
Cocoa、Carbonなどのアプリケーション向けのフレームワークの下層に位置するサービスレイヤー。CoreFoundation以外にもグラフィックエンジンであるQuartzや動画再生をつかさどるQuickTimeなどがこの層に属する。
実行可能なコード、各種リソース情報などのファイル群を1つのディレクトリにまとめたもので、「パッケージ」とも呼ばれる。
Copyright © ITmedia, Inc. All Rights Reserved.