将CoreData与对象一起使用?

Ron*_*Ron 1 macos cocoa core-data

这是一个初学者的问题:我在CoreData上看到的每个教程都专注于数据库支持的存储.他们都开始绘制一个关系和诸如此类的对象模型.

但我的应用程序将像一个简单的绘图应用程序,想想Illustrator light或OmniGraffle.我在页面的内存中有一个对象,然后是绘制元素的几个子对象.你会如何使用CoreData?

我不需要完成代码只是指针或想法.

谢谢!

Tec*_*Zen 7

每个程序设计都以数据模型开始(或应该开始).数据模型不仅存储程序的数据,还存储数据之间的逻辑关系.数据模型是程序的内容,其他所有内容都是一个或多个以某种方式显示数据模型的接口.

以一个绘制多边形的简单绘图程序为例.从逻辑上讲,程序将以文档开头.在核心数据中,这将由数据模型中的文档实体表示,并且可能是NSManagedObject子类.该文档反过来将包含(关系)一个或多个页面.这些页面还有一个实体和一个子类.这些页面将保存有关物理页面的数据,例如页边距,页脚,页眉等.页面也会保存多边形.每个多边形实体 - 子类将保持绘制多边形所需的信息,例如顶点的点.

当用户绘制时,控制器层将命令和屏幕位置转换为数据模型中的数据,然后根据需要再次退出.

使用核心数据构建数据模型有许多优点.

  • 核心数据自动管理难以手动跟踪的非常复杂的逻辑关系.
  • 它创建了一个自动撤消系统
  • 它使得在程序的不同部分之间传输数据(在这种情况下绘制)或导出图形的子部分变得更加容易.
  • 它将数据与任何特定接口分离.例如,您可以通过编写另一个控制器将绘图输出到LaTex或flash.
  • 它使编写应用程序变得容易.只需以编程方式使用数据模型而不是用户界面创建脚本界面.

我的理解是Omnigraffle基于核心数据,所以如果你想要一个类似核心数据的应用程序绝对是可行的方法.