我有一個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