我强烈建议您阅读 Core Data Programming Guide 并从Core Data Basics Chapter开始。
UIManagedDocument
是一种特殊的文档,一个UIDocument
子类,它使用Core Data Framework存储其数据。因此,它结合了文档架构和核心数据能力的强大功能。
你可以从Document Based App Programming Guide for iOS中了解更多关于基于文档的架构,我推荐WWDC2011 Storing Documents in iCloud using iOS5 session video。我还推荐Stanford CS193P: iPad and iPhone App Development (Fall 2011) Lecture 13。
调用时创建的是andsaveToURL:forSaveOperation:completionHandler:
的实现细节,您不应该真正担心或依赖它。然而,在当前实现中,正在创建一个包含 sqlite 数据库文件的文件夹。UIManagedDocument
UIDocument
不会。所有实体都将包含在一个数据库文件中,也更普遍地称为:持久存储。可以使用多个持久存储,但这些是更高级的用例,UIManagedDocument
目前使用一个。
UIManagedDocument
的上下文是指NSManagedObjectContext
来自底层核心数据框架。UIManagedDocument
实际上并行操作其中两个以将 IO 操作分离到后台线程。当谈到上下文本身的性质时,这里引用了核心数据编程指南:
您可以将托管对象上下文视为智能便签本。当您从持久存储中获取对象时,您会将临时副本带到便笺簿上,它们在此处形成对象图(或对象图的集合)。然后,您可以随意修改这些对象。但是,除非您实际保存这些更改,否则持久存储将保持不变。
但是,看看我在上面发布的讲座和其他材料,以大致了解所使用的技术以及它们在不同情况下对开发人员的潜在价值,确实是一个好主意。