繁体   English   中英

是NSDocument和CoreData的可能组合,还是NSPersistentDocument的唯一方法?

[英]Is NSDocument and CoreData a possible combination, or is NSPersistentDocument the only way?

我正在制作一个应用程序,为我学校的人们创建课程时间表。 这是我为应用程序考虑的粗略设计:

我希望我的NSDocument子类代表个人的时间表。 这个想法是他们打开一个文档,并可以将池中的课程添加到他们的时间表,然后保存,共享,打开等。所以时间表将存储在用户选择的外部文件中。

我想使用CoreData存储学生可以选择的所有课程。 这些不会随着时间表的创建和编辑而改变,而是可能仅在启动应用程序时检查课程信息的更新。

这似乎是构建我的应用程序的合理方式。 问题是,当我创建一个基于NSDocument的应用程序并检查use CoreData框时,而不是使其成为一个基于NSDocument的应用程序与CoreData工具,它使它成为一个基于NSPersistentDocument的应用程序。

我不认为这是我想要的行为。 有没有办法使用CoreData,但仍然有一个基于NSDocument的应用程序? 或者NSPersistentDocument毕竟我应该使用什么? 我是否误解了整个NS * Document业务? 您对我的应用程序结构有什么建议吗?

谢谢你的帮助!

是的,您可以在不使用NSPersistentDocument情况下使用Core Data。 只是直接实例化NSPersistentStoreCoordinatorNSManagedObjectContext 这是一些代码: 如何创建NSManagedObjectContext

如果要在多个NSDocument实例之间共享目录实例,并且不希望将目录与每个文档一起保留,这是一个很好的方法。 您的应用程序或应用程序代表可以负责加载课程目录,您的文档可以负责加载和保存单个学生的时间表。 你必须自己实现,使用键控归档器,或者自己编写一个plist。

相反,如果您愿意,可以进一步利用核心数据。 使用NSManagedObject表示学生日程安排,让NSPersistentDocument处理加载和保存上下文。 您可以免费获得许多有用的功能,例如undo-redo。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM