我是 cocoa 开发的新手。
我刚刚第一次使用核心数据创建了一个新的文档类型应用程序,并注意到一些奇怪的事情。
AppDelegate
实际上是空的,没有任何代码来创建核心数据存储、管理对象上下文,什么也没有。添加了两个文件:
Document.m
和Document.h
我理解的是处理应用程序将创建的文档的模型。即使没有可见的核心数据初始化代码,Xcode 也会创建一个
.xddatamodeld
文件,这是奇怪的部分:Xcode 将文件命名为Document.xcdatamodeld
。通常 Xcode 会使用与项目相同的名称来命名它。通过将其命名为Document
这就像说这个模型与Document.m
有关。和Document.h
.
1 和 3 是 Xcode 中的一堆废话还是我遗漏了什么?
你们能解释一下吗?谢谢。
最佳答案
简短回答您的问题:您所看到的行为是由您创建基于文档的应用程序引起的。如果您创建了一个鞋盒(非基于文档的)应用程序,您会看到不同的行为。
关于问题 1,当您创建新文档时,NSPersistentDocument 会为该文档创建一个核心数据存储和一个托管对象上下文。每个文档都有自己的核心数据存储和托管对象上下文。在 AppDelegate 中创建存储和托管对象上下文对于鞋盒应用程序来说很好,因为鞋盒应用程序具有整个应用程序的一组数据。但是,在 AppDelegate 中创建存储和托管对象上下文对于基于文档的应用程序来说没有任何意义,因为可以打开多个文档,每个文档都有自己的存储和托管对象上下文。
关于问题 3,数据模型具有文档的名称,因为基于文档的应用程序创建文档。假设您正在创建一个文档名称为 Screenplay 的剧本创作应用程序。当您在应用程序中选择"file">“新建”时,您将创建一个新的剧本,而不是应用程序的新实例。这就是数据模型具有文档名称而不是应用程序名称的原因。
关于xcode - 在 Xcode 上创建新的基于文档的 Cocoa 应用程序的奇怪事情,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28495767/