2

我知道我可以使用下面的代码对我的文件进行编码/解码,以便从 UIDocumentBrowserViewController 在我的 UIDocument 中保存/加载,如 Apple 的 2017 WWDC 中所述。

class Document: UIDocument
{
override func contents(forType typeName: String) throws -> Any
{
    return NSKeyedArchiver.archivedData(withRootObject: myRootObject)
}

override func load(fromContents contents: Any, ofType typeName: String?) throws
{
    guard let data = contents as? data else { return }
    guard let rootObject = NSKeyedUnarchiver.unarchiveObject(with: data) as? MyRootObject else { return }
    myRootObject = rootObject
}
}

但是,上面的代码对于更大的文件(300MB+)和更复杂的对象图来说效率很低,我的应用程序就是这种情况。

我想有必要实施某种增量储蓄。但是,我不知道如何实现这一点,也找不到关于该主题的任何教程或文档。另外, NSKeyedArchiver 似乎是一个缓慢的选择,所以我应该使用其他东西来进行增量保存吗?什么是实现保存/加载的好/快速方法?

4

0 回答 0