NSDictionary以NSDictionary格式化字符串并返回

时间:2013-06-21 15:08:54

标签: objective-c dictionary nsstring nsdictionary nsmutabledictionary

我正在尝试将两种格式的NSDictionary格式化字符串相互转换。

两个字符串:

<key>info</key><dict><key>title</key><string>The Title</string></dict>

info = { title = "The Title";}

如果我使用initWithDatainitWithContentsofFile,请转换为NSDictionary。当我使用[NSDictionary description]从字典中获取字符串时,我得到第二个字符串。 因此,如果我输入第一个字符串,它是单向转换。有没有一种简单的方法将第二个字符串转换回第一个字符串,并在下面的文件中一起使用它们并将其转换为NSDictionary?谢谢。

<dict>
dict1 contents...
</dict>
info ={dict2 contents...}

1 个答案:

答案 0 :(得分:1)

解决了我的问题,非常感谢评论。

要以“人类可读的plist形式”/“属性列表表示”(XML等)保存,请使用

  • NSDictionary的writeToFile:方法。 Doc link

  • NSPropertyListSerialization dataWithPropertyList:方法。 Doc link

    NSError *error;    
    dataToBeStored = [NSPropertyListSerialization dataWithPropertyList:dictionaryToBeStored format:NSPropertyListXMLFormat_v1_0 options:0 error:&error];
    if (data) {
    NSFileManager* fileManager = [[NSFileManager alloc] init];
    [fileManager createFileAtPath:fullPath contents:dataToBeStored attributes:nil];
    [fileManager release];
    }
    

现在,如果您打开已保存的文件并读取数据并转换为字符串,您将获得一个很好的人类可读的plist。或者您也可以init使用NSDictionary。