【发布时间】:2012-02-28 01:45:44
【问题描述】:
我有一个正在运行的 iOS 应用程序,并且正在尝试清理一些代码结构和实现。我想澄清我对 MVC 的理解并改进我的代码。
问题:将模型传递给 UIView 以便视图可以根据模型元素的状态呈现它是否合法?
我在下面概述了一个示例,但我意识到它可能不清楚,阅读起来太乏味等。要点是:如果 UIView 不更改模型中的任何值,它是否可以保留对该模型? (比方说总是要求其委托返回一个指向模型的临时指针)。
--感谢任何 cmets!
示例:想象一个 UIView,它代表一个 10 层楼的 BUILDING,每层楼有 1 个窗口。这个模型是一个包含 10 个自定义 WINDOW 对象实例的 NSArray。每个窗口 obj。有一个状态(灯打开或关闭)和一个 CGRect 表示窗口在整个建筑视图矩形内的位置。
BUILDING 实例的控制器定义了构建视图(它的框架)和所有 WINDOW 对象的大小,包括 CGRects、它的状态等,从而创建了 NSArray 模型。然后我将此模型分配给 BUILDING 控制器的 UIView(但保留是 BUILDING 控制器的强属性)。
UIView 需要知道 WINDOW 和 CGRect 的状态才能在drawRect 中绘制视图。
我想我可以单独存储 CGRect,因为它们不是抽象数据,但将它们全部打包到一个对象数组中似乎更容易。
【问题讨论】:
标签: objective-c model-view-controller