有没有办法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?
有可能提出一个愚蠢的问题:你为什么要这样做?如果要进出文本,请使用NSPropertyListSerialization类.
最简洁的答案是不.描述文本旨在快速描述字典的内容,通常用于调试目的.
可能(但不推荐)解析输出字符串并使用它来填充新字典,但在许多情况下这不起作用.例如,如果您的原始字典包含任何自定义数据类型,则说明输出将显示为:
{ "key 1" =; "key 2" = ; }
当然,这是不可逆的.
从Apple的开发人员文档中获取该description
方法NSDictionary
:
如果接收方中的每个密钥都是NSString对象,则按键按升序列出条目,否则列出条目的顺序是未定义的.此方法旨在生成可读输出以用于调试目的,而不是用于序列化数据.如果要存储字典数据以供以后检索,请参阅" 属性列表编程指南"和"Cocoa的存档和序列化编程指南".