2010-07-10 70 views
0

Web服务以plist的形式提供数据。下载后,我有一个NSData对象中的所有数据,我想将其转换为NSDictionary。现在我知道的唯一办法做到这一点,而无需手动(呸)解析它是这样的:iPhone:缺少方法? NSDictionary dictionaryWithData:

static NSString *fileName = @"tempFile"; 
[data writeToFile: fileName atomically: NO]; 
NSDictionary *dict = [NSDictionary dictionaryWithContentsOfFile: fileName]; 

我很惊讶的NSDictionary不具有dictionaryWithData:方法。如果dictionaryWithString:存在,我甚至不会介意将NSData首先转换为NSString。很明显,SDK在底层做了类似的事情,但它并没有暴露给开发人员。

任何人都可以提出一个更好的方法来做到这一点?我需要转换的一个文件可能会非常大,并且执行写入文件+从文件读取操作可能会有点慢。

回答

2

使用下列之一:

+[NSPropertyListSerialization propertyListFromData:mutabilityOption:format:errorDescription:] 
+[NSPropertyListSerialization propertyListWithData:options:format:error:] 

前者是可用的iOS 2.0+但4.0已被弃用。

+0

非常好!这正是我需要的。 – Amagrammer 2010-07-10 16:41:14