当前位置:  开发笔记 > 编程语言 > 正文

将NSString转换为NSDictionary

如何解决《将NSString转换为NSDictionary》经验,为你挑选了2个好方法。

有没有办法NSDictionary从通过其description方法创建的字符串中获取回来?

鉴于此代码:

NSDictionary *dictionary = [NSDictionary dictionaryWithObjects:[NSArray arrayWithObjects:@"value 1", @"value 2", nil] forKeys:[NSArray arrayWithObjects:@"key 1", @"key 2", nil]];
NSString *dictionaryString = [dictionary description];
NSLog(dictionaryString);

这使得这个输出:

{
    "key 1" = "value 1";
    "key 2" = "value 2";
}

有没有一种简单的方法可以从字符串返回到NSDictionary?



1> Ben Gottlieb..:

有可能提出一个愚蠢的问题:你为什么要这样做?如果要进出文本,请使用NSPropertyListSerialization类.


+1谢谢.像魅力一样......就像有人在寻找一个例子`NSError*错误; NSPropertyListFormat plistFormat; NSDictionary*temp = [NSPropertyListSerialization propertyListWithData:数据选项:NSPropertyListImmutable格式:&plistFormat错误:&error] ;;

2> e.James..:

最简洁的答案是不.描述文本旨在快速描述字典的内容,通常用于调试目的.

可能(但不推荐)解析输出字符串并使用它来填充新字典,但在许多情况下这不起作用.例如,如果您的原始字典包含任何自定义数据类型,则说明输出将显示为:

{
    "key 1" = ;
    "key 2" = ;
}

当然,这是不可逆的.

从Apple的开发人员文档中获取该description方法NSDictionary:

如果接收方中的每个密钥都是NSString对象,则按键按升序列出条目,否则列出条目的顺序是未定义的.此方法旨在生成可读输出以用于调试目的,而不是用于序列化数据.如果要存储字典数据以供以后检索,请参阅" 属性列表编程指南"和"Cocoa的存档和序列化编程指南".

推荐阅读
135369一生真爱_890
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有