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的存在是正确的;随后期望的数组是错误的)。