保存和加载UIDocumentBrowserViewController

时间:2018-08-13 23:56:42

标签: swift save uidocument uidocumentbrowservc

我知道我可以使用下面的代码对文件进行编码/解码,以便通过UIDocumentBrowserViewController从UIDocumentBrowserViewController保存/加载文件,如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似乎是一种较慢的选择,因此我应该使用其他方式进行增量保存吗?什么是实现保存/加载的好/快速方法?

0 个答案:

没有答案