所以我开始读这本书:
http://www.amazon.com/Cocoa-Design-Patterns-Erik-Buck/dp/0321535022
在第2章中,它解释了MVC设计模式,并给出了一些示例,我需要对其进行澄清。
这个简单的示例显示了一个具有以下字段的视图:
hourlyRate,WorkHours,Standarthours,薪水。
该示例分为三个部分:
视图-包含一些文本字段和一个表(该表包含员工数据列表)。
控制器-由NSArrayController类组成(包含MyEmployee的数组)
模型-描述雇员的MyEmployee类。
MyEmployee类具有一种根据计算逻辑返回工资的方法,
和属性(根据视图UI控件)。
MyEmployee继承自NSManagedObject。
我不确定的几件事:
1.在MyEmplpyee类实现文件中,计算方法使用如下语句获取类属性:
“ [[[self valueForKey:@” hourlyRate“] floatValue];”但是,在标头中没有名为hourlyRate的数据成员或任何视图字段。
我不太确定它是如何工作的,以及它如何从正确的视图字段中获取值。 (它的名称必须与视图中的字段名称相同)。
也许使用接口构建器以某种方式创建了连接,但未在书中显示?
更重要的是:
2.如何将视图与模型分开?假设,正如本书所暗示的那样,我决定有一天要删除视图中的某个字段。
据我了解,这意味着更改薪水方法在MyEmplpyee中的工作方式(因为我们减少了一个字段),并从同一笔交易中删除了一个属性。
因此,如果更改一个在另一个上的反映,如何将视图与模型分开?
我想我弄错了...有什么意见吗?
谢谢
最佳答案
valueForKey:
方法的实现在here中讨论。请注意,valueForKey:
实际上可以直接访问ivars,而无需调用任何方法。
如果从NSTableView中删除列,则不必从模型对象类中删除它。它仍然在那里,只是没有显示。