我有一个iOS应用程序工作,并试图清理一些代码结构和实现。我想澄清我对MVC的理解并改进我的代码。MVC:将模型指针传递给视图?
问题:将模型传递给UIView是合法的,因此视图可以基于模型元素的状态来渲染它?
我在下面概括了一个例子,但是认识到它可能不清楚,太乏味阅读,等等。要点是:如果一个UIView没有改变模型中的任何值,它可以保留一个弱引用模型? (比较说总是要求它的委托返回一个临时指针给模型)。
--thanks任何评论!
实施例:想象其表示与1个WINDOW每层有10层大楼一个UIView。这个MODEL是一个包含10个自定义WINDOW对象实例的NSArray。每个WINDOW obj。有一个状态(灯亮或熄灭)和一个代表整个建筑物视图内WINDOW位置的CGRect。
BUILDING实例的控制器定义了构建视图(它的框架)的大小以及所有的WINDOW对象,包括CGRects,它的状态等,创建NSArray模型。然后,我将这个MODEL分配给BUILDING控制器的UIView(但保留是BUILDING控制器的一个强大属性)。
UIView的需要了解窗口的状态和的CGRect以绘制视图drawRect
。
我想我可以单独存储CGRects因为它们不是抽象的数据,但它似乎更容易给它的所有装入对象的一个阵列。
谢谢!我想我明白你在说什么。我对'弱有点糊涂(或指定)'VS,因为在您的评论'strong'参考'BuildingViewController'及其视图将共享相同的寿命(按我的设计)。也许这并不重要,因为这个?哦 - 我的模型不知道的意见,但我想知道存储模型的CGRect数据 - 我** **能有一个平行阵列不是模型的数据的CGRect,但认为还需要知道模型状态为了正确绘制,所以将它们包装在一起似乎是有意义的。 – 2012-02-28 04:57:53
CGRect只是数据。它代表关于绘图的信息。它不吸引自己。管理CGRect数据的模型没有问题。 – 2012-02-28 13:45:19