第3回 plist(プロパティリスト)とFoundation【前編】Undocumented Mac OS X(1/4 ページ)

Mac OS Xにおいてオブジェクトの永続化に用いられるファイル形式plist。今回から2回にわたって、plistとこれに対応するFoundationフレームワークがMac OS Xをどのように支えているのか解説する。

» 2007年05月14日 09時03分 公開
[白山貴之,ITmedia]

 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と同レベルの読み書きが可能だ。

表1 表1 plistの要素と各種Foundationにおけるクラスの対応表

 このほかplistは、Mac OS Xにおける基本的なデータの表現方法ともなっている。iTunesの曲目を管理するiTunes Music Library.xmlファイル、アプリケーションやデバイスドライバ(kext)、プラグインといったバンドル*の中に必ず存在するパッケージのメタデータを収めたInfo.plist、アプリケーションの各ユーザーごとの設定情報を管理するUser Defaults(Preferences)など利用例は多岐にわたる。

このページで出てきた専門用語

オブジェクトの永続化

メモリ上に生成したオブジェクト(のインスタンス)の内容をファイルなどに記録し、プログラムが終了しても内容を保持すること、またはそのための機能を指す。再度必要となったときにファイルを読み取って復活させる。

CocoaやCarbon

それぞれアプリケーション向けのAPIセットの名称。CocoaはNeXTSTEPのObjective-Cのクラスライブラリをベースとしている。Carbonは旧MacOSのToolboxを参考に、より優れたAPIにまとめ直されている。

CoreService

Cocoa、Carbonなどのアプリケーション向けのフレームワークの下層に位置するサービスレイヤー。CoreFoundation以外にもグラフィックエンジンであるQuartzや動画再生をつかさどるQuickTimeなどがこの層に属する。

バンドル

実行可能なコード、各種リソース情報などのファイル群を1つのディレクトリにまとめたもので、「パッケージ」とも呼ばれる。


       1|2|3|4 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.