NSString* path = [[NSBundle mainBundle] pathForResource:@"hoge" ofType:@"plist"];
NSArray *data = [NSArray arrayWithContentsOfFile:path];
これは、Xcode4でplistを作成すると、最上位階層が<dict>となるためだ。
最上位階層がNSDictionaryとなるため、[NSArray arrayWithContentsOfFile:path]; では読み込めない。
■xcode3.x以前で作成したplist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<array>
<dict>
<key>aaaa</key>
<string>123</string>
<key>bbbb</key>
<string>456</string>
</dict>
</array>
</plist>
■Xcode4で作成したplist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>New item</key>
<array>
<dict>
<key>aaaa</key>
<string>123</string>
<key>bbbb</key>
<string>456</string>
</dict>
</array>
</dict>
</plist>
従って、最上位階層の<dict >をテキストエディットなどの編集ソフトで削除する必要がある。
■参考記事
http://d.hatena.ne.jp/NHideki12/20110314/1300102724
タグ:iPhone