検索
連載

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

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

PC用表示 関連情報
Share
Tweet
LINE
Hatena

 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)など利用例は多岐にわたる。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

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

オブジェクトの永続化

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

CocoaやCarbon

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

CoreService

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

バンドル

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


       | 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る