首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >来自NSMutableData的NSDictionary

来自NSMutableData的NSDictionary
EN

Stack Overflow用户
提问于 2009-08-16 13:30:59
回答 3查看 3.3K关注 0票数 0

我以前使用initWithContentsOfURL将plist下载到NSDictionary中,但在同一线程上运行时会挂起UI,因此现在我已转移到NSURLConnection。问题是我不能再使用NSMutableData调用初始化NSDictionary的方法。将NSMutableData放入NSDictionary的最佳方法是什么?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-08-16 13:58:18

您需要的是NSPropertyListSerialization:

代码语言:javascript
复制
NSDictionary *myDict = [NSPropertyListSerialization propertyListFromData:myData mutabilityOption:NSPropertyListImmutable format:nil errorDescription:nil];

是最简单的选择。

票数 3
EN

Stack Overflow用户

发布于 2009-08-16 13:50:35

在不确切知道您要做什么的情况下,我将尝试这样做;即使它不起作用,我相信您也可以根据自己的目的对其进行调整。

代码语言:javascript
复制
NSString *s = [[NSString alloc] initWithBytes:[mutableData bytes] length:[mutableData length] encoding:NSUTF8StringEncoding];
NSString *path = NSTemporaryDirectory();
path = [path stringByAppendingPathComponent:@"tmpfile.txt"];
if ([s writeToFile:path atomically:NO encoding:NSUTF8StringEncoding error:nil]) {
    NSDictionary *d = [[NSDictionary alloc] initWithContentsOfFile:path];
}

简单来说,就是根据给定的数据创建一个字符串,将其写出到临时文件中,然后将该临时文件加载到NSDictionary对象中。

代码远不完美(需要错误检查之类的东西)但这可能会让你起步。

注意:我编写Cocoa软件已经有几年了,但我从来没有接触过iPhone,所以这只是一个猜测。

票数 1
EN

Stack Overflow用户

发布于 2009-08-16 14:04:42

您的NSDictionary是否有其他需要保留的数据?

在connection:didReceiveResponse:方法(NSUrlConnection的委托)中,您可以将旧的NSDictionary复制到NSMutableDictionary中,然后将URL响应数据也插入其中。然后将NSMutableDictionary转换为新的NSDictionary。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1284295

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档