plist とはプロパティリストのことで、アップル特有のデータフォーマットで中身は XML です。アプリの情報で info.plist とか使うので、iPhone アプリ開発時には一度は使ったことがあると思います。

今回はアプリに渡す固定値を plist で渡すことをやりました。

plist の書き方

Xcode なら plist 用のエディタがあるので、それを使うのが最も簡単です。ただ、件数が多いデータを作成する場合手作業では面倒なので、簡単なスクリプトを組んで生成したいところです。今回、私は PHP で2000件ほどのデータを plist に書き出しました。

plist の書き方ですが以下のようになります。

NSString

<string> String Data</string;&gt

NSNumber

<integer>123456</integer>
<real>3.141592</real>
<true/>
<false/>

NSData

<data>NS DATA</data>

NSDate

<date>2009-08-18</date>

NSArray

<array>
  <string>name1</string>
  <string>name2</string>
</array>

NSDictionary

<dict>
  <key>key1</key>
  <string>value1</string>
</dict>

これらは組み合わせても使えます。また plist は XML なので XML のフォーマットで作成します。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer/DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<array>
  <dict>
    <key>name</key>
    <string>yamada taro</string>
    <key>age</key>
    <integer>20</integer>
  </dict>
  <dict>
    <key>name</key>
    <string>tanaka hanako</string>
    <key>age</key>
    <integer>22</integer>
  </dict>
</array>
</plist>

この plist を Xcode のエディタで開くと下記のようになります。
ピクチャ 2

plist を読み込む

上記で作成した plist を NSArray に読み込みます。hoge.plist と名前を付けて、Xcode で Resource フォルダに入れておきます。

NSString* path = [[NSBundle mainBundle] pathForResource:@"hoge" ofType:@"plist"];
NSArray* plist = [NSArray arrayWithContentsOfFile:path];
NSLog(@"%@", plist);

上記の実行結果は以下のようになります。

(
  {
    age = 20;
    name = "yamada taro";
  },
  {
    age = 22;
    name = "tanaka hanako";
  }
)

関連する投稿