2

我是 stackoverflow 的新手 :) 但我认为,这是问我问题的正确地方。我是 Cocoa 和 Objective-c 的新开发人员,我正在尝试编写我的第一个 Mac 应用程序:ToDo 应用程序。

此时,我可以保存 ToDo 并删除它们,但现在,我想添加一些功能,如 CreationDate、一些标签(在 mutablearray 中)以及 ToDo 是否完成。我没有使用 ArrayController,我将编码的 NSMutableArray 保存到文件(库/应用程序支持/AppName)中并从那里读取它。

这一切都必须在一行中,因为它看起来像这样:

当前外观 http://img683.imageshack.us/img683/7595/bild2ss.png

标题在哪里,应该是待办事项的内容,蓝色框在哪里,应该是状态(蓝色=撤消,灰色=完成),副标题应该是日期和标签(03.01.2009 - tag1,tag2 , 标记 3)

我现在如何将对象添加到一个可变数组中,但是,如果我想将所有这 4 个信息保存到这个数组中,我不知道如何制作这个。

我有一个模型,它正在使用这 4 个信息进行初始化,但是如何保存呢?我必须将此信息保存在一个数组中,然后将此数组保存在我的可变数组中吗?

4

2 回答 2

6

解决方案实际上是相反的:每行有一个对象。

这就是您的模型层(MVC中的 M )的用武之地:每一行的对象是一个模型对象,是您构造的类的一个实例,图标、标题和副标题是该对象的属性。

然后,为您的表格列创建一个自定义单元格,以这种方式显示模型对象。单元是视图层的一部分——MVC 中的 V。

MVC 中的 C 位于模型和视图之间:它是拥有模型的对象,并且是表视图的数据源(无论是否通过绑定)。表格视图从此对象获取模型对象以将它们提供给单元格。这个中间对象是一个控制器。

于 2010-01-03T12:44:32.000 回答
1

现在我有了!

我只有一个带有 ArrayController 的内容单元格。

我用 -(id)init 为每一行设置其他信息。

有 3 个对象:内容、状态和日期,对于每个状态,我都会显示另一个图像(完成、撤消、...)。

非常感谢您的帮助!我正在努力为每个人完成 Beta 版 :)

于 2010-01-04T21:37:46.847 回答