- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一组自定义对象,我正在将它们转换为 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
来处理 FileManager
或 PathUtilities
等。所以这里替换 .absoultestring
与 .path
将解决问题
有关它们的更多详细信息,请参阅此 answer
关于swift - NSKeyedArchiver.archiveRootObject 保存失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48217705/
我有一组自定义对象,我正在将它们转换为 NSMutableDictionary,然后从中创建一个数组(这部分目前按预期工作)。 然后我尝试使用 NSKeyedArchiver 将该数据数组保存为文件。
过去几个小时我一直在努力解决这个问题,但我已经没有想法了。 我想做的只是存档一个对象,但是方法 archiveRootObject 一直返回 NO 这是我的代码: NSArray *paths = N
我有一个非常简单的问题,我只是找不到合适的答案。那是 [NSKeyedArchiver archiveRootObject:value toFile:filePath]; 根据苹果文档 here ,上
我在下面有两个模型 swift 文件。 // Item.swift import UIKit class Item: NSObject, NSCoding { var name: String
我正在制作一个 iPhone 应用程序并在 previous question 中我被告知我需要 archiverootobject 和 unarchiverootobject 的有效文件路径,但我不
我是 Objective C 的新手,正在编写一些简单的程序来熟悉自己。 尝试使用 NSKeyedArchiver 保存/读取信息,但每次我这样做都无法创建 .plist 文件。我环顾四周,一直找不到
我目前正在 Xcode 7 和 ios 9 上使用 SpriteKit,我遇到了建议的 URLByAppendingPathComponent 方法,该方法用于访问文件的本地 url 并结合 arch
是否真的可以调用 NSKeyedArchiver archiveRootObject 并使用数据保护 API 将文件属性设置为 NSFileProtectionComplete 或 NSFilePro
最近,我正在学习 NSKeyedArchiver 和 NSKeyedUnarchiver。我发现存在三种归档数组的方法,我正在尝试找出它们之间的区别。 1.使用archiveRootObject:to
NSKeyedArchiver.archiveRootObject(, toFile: ) 仅第一次返回true。每次我下次调用它时,该方法都会返回 false。 我读了一些SO,一些帖子说我不能用这
我有一个自定义的 Swift 类,它使用 NSKeyedArchiver 将数据写入文件系统。此类中完成这项工作的功能之一是: func writeDataToArchive (data: AnyOb
使用 iOS 12,archiveRootObject:toFile:已被弃用。谁能建议一种简化的替代方法来将对象归档到文件中? //Generic example of archiver prior
我是一名优秀的程序员,十分优秀!