这是一个初学者的问题:我在CoreData上看到的每个教程都专注于数据库支持的存储。他们都开始绘制一个关系和诸如此类的对象模型。
但我的应用程序将像一个简单的绘图应用程序,想想Illustrator light或OmniGraffle。我在页面的内存中有一个对象,然后是绘制元素的几个子对象。你会如何使用CoreData?
我不需要完成代码只是指针或想法。
谢谢!
答案 0 :(得分:7)
每个程序设计都以数据模型开始(或应该开始)。数据模型不仅存储程序的数据,还存储数据之间的逻辑关系。数据模型是程序的内容,其他所有内容都是一个或多个以某种方式显示数据模型的接口。
以绘制多边形的简单绘图程序为例。从逻辑上讲,程序将以文档开头。在核心数据中,这将由数据模型中的文档实体表示,并且可能是NSManagedObject子类。该文档反过来将包含(关系)一个或多个页面。页面还有一个实体和一个子类。这些页面将保存有关物理页面的数据,例如页边距,页脚,页眉等。页面也会保存多边形。每个多边形实体 - 子类将保持具有绘制多边形所需的信息,例如,顶点的点。
当用户绘制时,控制器层会将命令和屏幕位置转换为数据模型中的数据,然后根据需要再次退出。
使用核心数据构建数据模型有许多优点。
据我所知,Omnigraffle基于核心数据,所以如果你想要一个像核心数据这样的应用程序绝对是可行的方法。
答案 1 :(得分:3)
核心数据需要定义对象图的模型,无论您使用的是持久性存储还是内存存储。你一定要阅读Core Data Programming Guide。