parsingPlist(NSString)到NSDictionary
所以我有一个plist结构string,dynamic获取(而不是从文件系统)。 我将如何将此string转换为NSDictionary。
我已经尝试转换它的NSData,然后到NSPropertyListSerialization与NSDictionary,但它会返回“[NSCFString objectAtIndex::无法识别的select器发送到实例0x100539f40”当我试图访问NSDictionary,显示我的字典没有成功创build。
NSString的例子(这是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>Key1</key> <dict> <key>Test1</key> <false/> <key>Key2</key> <string>Value2</string> <key>Key3</key> <string>value3</string> </dict> </dict> </plist>
谢谢!
请参阅序列化属性列表
NSData* plistData = [source dataUsingEncoding:NSUTF8StringEncoding]; NSString *error; NSPropertyListFormat format; NSDictionary* plist = [NSPropertyListSerialization propertyListWithData:plistData mutabilityOption:NSPropertyListImmutable format:&format errorDescription:&error]; NSLog( @"plist is %@", plist ); if(!plist){ NSLog(@"Error: %@",error); [error release]; }
尝试这个:
NSData * data = [yourString dataUsingEncoding:NSUTF8StringEncoding]; NSString *errorDesc = nil; NSPropertyListFormat format; NSDictionary * dict = (NSDictionary*)[NSPropertyListSerialization propertyListFromData:data mutabilityOption:NSPropertyListMutableContainersAndLeaves format:&format errorDescription:&errorDesc];
我已经尝试转换它的NSData,然后到NSPropertyListSerialization与NSDictionary,但它会返回“[NSCFString objectAtIndex::无法识别的select器发送到实例0x100539f40”当我试图访问NSDictionary,显示我的字典没有成功创build。
不,它不显示这样的事情。 它显示的是你试图把一个string作为一个数组。 您需要确定plist中的哪个位置要获取数组,以及为什么在您期望的数组中存在string,即,是否错误地创build了plist( 将string放入其中,以便将数组放入其中)或正在检查它不正确(string的存在是正确的;随后期望的数组是错误的)。