gpt4 book ai didi

objective-c - plist XML 字符串到 NSMutableDictionary

转载 作者:搜寻专家 更新时间:2023-10-30 19:55:00 24 4
gpt4 key购买 nike

我将一些字典存储在 plist 文件 (iOS) 中,随后对其进行加密。读取文件内容并解密后,我以字符串形式返回文件的 xml 内容:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>password</key>
<string>apassword</string>
<key>username</key>
<string>ausername</string>
</dict>
</plist>

我知道以下方法:dictionaryWithContentsOfFile:(NSString *)dictionaryWithContentsOfFile:(NSURL *) 从此类数据创建字典,但我对此感到惊讶不是这样的 dictionaryWithXML:(NSString *)

没有将这些数据写入文件然后读取它,这是我试图避免的事情,因为它太过分了,我是否遗漏了任何明显的解决方法?

最佳答案

NSPropertyListSerialization 有一个方便的方法可以为您完成,从 NSData 实例中读取:

NSString *source = ... // The XML string

NSData* plistData = [source dataUsingEncoding:NSUTF8StringEncoding];

NSError *error;

NSMutableDictionary* plist = [NSPropertyListSerialization propertyListWithData:plistData
options: NSPropertyListImmutable
format:NULL
error:&error];

正如@Adam 在评论中指出的那样,此方法返回的字典始终是可变的。 options 参数用于确定 plist 中保存的容器(数组、字典)是否也是可变的或(默认)不可变的。

如果您希望属性列表中的容器也是可变的,您可以使用 NSPropertyListMutableContainers - 或者 NSPropertyListMutableContainersAndLeaves,如果您甚至需要叶子也是可变的。

关于objective-c - plist XML 字符串到 NSMutableDictionary,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15022954/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com