gpt4 book ai didi

cocoa - 将 CoreData 与对象一起使用?

转载 作者:行者123 更新时间:2023-12-03 16:49:30 25 4
gpt4 key购买 nike

这是一个初学者的问题:我在 CoreData 上看到的每个教程都重点关注数据库支持的存储。他们都是从绘制具有关系等的对象模型开始的。

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

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

谢谢!

最佳答案

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

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

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

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

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

据我了解,Omnigraffle 是基于 Core Data 的,因此如果您想要一个像 Core Data 这样的应用程序,Core Data 绝对是您的最佳选择。

关于cocoa - 将 CoreData 与对象一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2192357/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com