我不确定coreData的结构以及如何将对象保存在目录中。所以我所知道的是你创建了一个UIManagedDocument的实例并为它创建一个URL以及它将保存文件的位置。那么你打电话给“SaveToURL”,你打电话给它的确是什么?它是核心数据堆栈吗?然后,当您将信息保存到实体中时,您声明的是在实体中为每组信息在堆栈中创建的单独文件?最后,究竟是UIManagedDocument的上下文。
这是三个主要问题
答案 0 :(得分:10)
我强烈建议您阅读核心数据编程指南,并以Core Data Basics Chapter开头。
UIManagedDocument
是一种特殊类型的文档,UIDocument
子类,使用核心数据框架存储其数据。因此,它结合了文档架构和核心数据功能的强大功能。
您可以从Document Based App Programming Guide for iOS了解有关基于文档的体系结构的更多信息,我建议 WWDC2011使用iOS5 会话视频在iCloud中存储文档。我还推荐 Stanford CS193P:iPad和iPhone App Development(2011秋季)第13讲。
致电saveToURL:forSaveOperation:completionHandler:
时创建的内容是UIManagedDocument
和UIDocument
的实施细节,您不应该担心或依赖它。但是,在当前实现中,正在创建包含sqlite数据库文件的文件夹。
没有。所有实体也将包含在单个数据库文件中
通常称为:持久性商店。可以使用
不止一个持久性商店,但这些是更高级的用途
案例和UIManagedDocument
目前使用一个。
UIManagedDocument
的上下文是指来自底层核心数据框架的NSManagedObjectContext
。 UIManagedDocument
实际上并行操作其中两个以将IO操作分离到后台线程。当涉及到上下文本质时,这里引用了核心数据编程指南:
您可以将托管对象上下文视为智能临时 垫。从持久性存储中获取对象时,请带上 临时复制到便笺簿上,形成对象图 (或对象图的集合)。然后,您可以修改这些对象 但是你喜欢。但是,除非您实际保存这些更改,否则 持久存储保持不变。
但是,看看我上面发布的讲座和其他材料以了解所使用的技术以及它们作为开发人员在不同情况下的潜在价值,这是一个好主意。