我一直在拉我的頭髮試圖找出這裏錯了什麼,出於某種原因JSONKit
沒有給我我需要的字典,所以我可以引用特定的鍵/值對plist中。JSONKit返回不需要的NSCFString而不是NSDictionary
取而代之的是它顯示爲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>
你明白了什麼,當你'的NSLog()''plist',' jsonString','returnDictionary'和'elem'? – 2013-05-13 10:46:02