ここで何が問題なのかを突き止めようと髪を引っ張ってきましたが、何らかの理由JSONKit
で必要な辞書が得られないため、plist 内の特定のキーと値のペアを参照できます。
代わりに、 のNSCFString
ようなメソッドに明らかに準拠していない として表示されObjectForKey:
ます。私は解決策を探し回った。ARCを無効にし、xcodeを再起動/再インストールし、さまざまな実装を実行するように指示しますが、問題はありません。さらに悪いことに、同じ機能を持つ別のプロジェクトに同じコード ブロックがあり、シームレスに動作します。
NSError * error = NULL;
NSData * plistData = [NSData dataWithContentsOfFile:filepath];
id plist = [NSPropertyListSerialization propertyListWithData:plistData options:NSPropertyListImmutable format:NULL error:&error];
NSString * jsonString = [plist JSONStringWithOptions:JKSerializeOptionPretty error:&error];
NSDictionary * returnDictionary = [jsonString objectFromJSONString];
for(id elem in returnDictionary)
{
for(id elements in elem)
{
NSLog(@"%@",elements);
}
}
与えられたエラー:
-[NSCFString countByEnumeratingWithState:objects:count:]: unrecognized selector sent to instance 0x1815750
問題の plist:
<dict>
<key>20003</key>
<dict>
<key>type</key>
<string>1</string>
<key>name</key>
<string>Home Name</string>
<key>font</key>
<string>Courier</string>
<key>size</key>
<string>22</string>
<key>color</key>
<string>FFFFFFFF</string>
</dict>
<key>20001</key>
<dict>
<key>type</key>
<string>1</string>
<key>name</key>
<string>heyhey</string>
<key>font</key>
<string>XXX</string>
<key>size</key>
<string>11</string>
<key>color</key>
<string>FFFF0000</string>
</dict>
</dict>
</plist>