検索
連載

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

Mac OS Xにおいてオブジェクトの永続化に用いられるファイル形式plist。前回紹介したFoundationと同様に基本的なデータ構造を扱うフレームワークである「CoreFoundation」の紹介を交えつつ、「Mac OS Xの『魂』」であるFoundationとplistの理解を深めていく。

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

plistとCoreFoundation

 CoreFoundationは、C言語で作成された、Foundationと同様に基本的なデータ構造を扱うフレームワークだ。Objective-CベースではないためCocoa以外のCやC++によるフレームワークとも組み合わせられる。

 CoreFoundationにはFoundationと同じ文字列や数値、データ、配列、ディクショナリといったクラスが存在し、それぞれCFString、CFNumber、CFArray、CFDictionaryという名前である。もちろんこれらのクラスはplistの要素と1対1で対応している。

 CoreFoundationでは、plistの読み書きにはCFPropertyListに属する関数を利用する。リスト1前回紹介したリスト4を、リスト2前回紹介したリスト5をそれぞれCoreFoundationで書き直したものだ*。またリスト1の実行結果が実行例1で、リスト2の実行結果が実行例2である。

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

リスト1 plistを読み込むサンプル(CoreFoundation版)

リスト2 plistを書き出すサンプル(CoreFoundation版)

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

実行例1 リスト1の実行結果

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

実行例2 リスト2の実行結果

 CoreFoundationはFoundationに比べ機能が少ないこともあり、少々行数は増えているが、やっていることはほぼ同じであると理解していただけるだろう。

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

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

CoreFoundationで書き直したものだ

CoreFoundationでは、ファイルの読み込みや書き出し先の指定はすべてURL(CFURL)で行うように統一されている。


       | 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る