首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对对象使用CoreData?

对对象使用CoreData?
EN

Stack Overflow用户
提问于 2010-02-03 21:55:02
回答 2查看 278关注 0票数 1

这是一个初学者的问题:我看过的关于CoreData的每个教程都集中在数据库支持的存储上。它们都是从绘制一个带有关系之类的对象模型开始的。

但我的应用程序会像一个简单的绘图应用程序,想想Illustrator light或OmniGraffle。我在内存中为页面创建了一个对象,然后为绘制的元素创建了几个子对象。您将如何使用CoreData来实现这一点?

我不需要完成的代码,只需要指针或想法。

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-02-04 02:23:47

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

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

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

使用核心数据构建数据模型有很多优点。

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

据我所知,Omnigraffle是基于Core Data的,所以如果你想要这样的应用,Core Data绝对是个不错的选择。

票数 7
EN

Stack Overflow用户

发布于 2010-02-03 21:58:17

核心数据需要定义对象图的模型,无论您使用的是持久化存储还是内存存储。你绝对应该读一读Core Data Programming Guide

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2192357

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档