gpt4 book ai didi

swift - NSKeyedArchiver.archiveRootObject 保存失败

转载 作者:行者123 更新时间:2023-11-28 15:07:49 26 4
gpt4 key购买 nike

我有一组自定义对象,我正在将它们转换为 NSMutableDictionary,然后从中创建一个数组(这部分目前按预期工作)。

然后我尝试使用 NSKeyedArchiver 将该数据数组保存为文件。但是,NSKeyedArchiver.archiveRootObject 的结果总是返回 false

以下是我的保存逻辑 - 我是否遗漏了一些明显的东西,或者这是错误的方法?谢谢!

    var groupsArray = [Any?]()

for group in file!.groups{
for obj in group.children {
let objDict = obj.convertToDictionary()

groupsArray.append(objDict)
}
}


let documents: String = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0]
let filePath: String = URL(fileURLWithPath: documents).appendingPathComponent("file.archive").absoluteString

let save: Bool = NSKeyedArchiver.archiveRootObject(groupsArray, toFile: filePath)

编辑:如果尝试保存到 .desktop.caches 目录,这也会失败。

最佳答案

这里的问题是 .absoultestring。如果 URL 对象包含文件 URL,那么我们应该使用 .path 来处理 FileManagerPathUtilities 等。所以这里替换 .absoultestring.path 将解决问题

有关它们的更多详细信息,请参阅此 answer

关于swift - NSKeyedArchiver.archiveRootObject 保存失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48217705/

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