2011-07-07 65 views
1

有人可以解釋我在iphone應用程序中的mvc基礎知識嗎?MVC在iphone應用程序

我看到模板類,但它們如何通信?

是否UIView發送事件給控制器?或模型發送事件?

模板文件是什麼模型?

回答

0

模型不應該關注視圖。這同樣適用於視圖,它應該與模型分離,並且不能真正直接訪問它,儘管它將顯示模型中的信息供用戶查看並與之交互。控制器充當模型和視圖之間的中介。

在蘋果公司的話,「A 控制器對象解譯視圖對象所做的用戶動作和連通新的或改變的數據到模型層。當模型對象改變,一個控制器對象傳達新模型數據到查看對象,以便它們可以顯示它。「

+0

thx,所有答案對我都有幫助,因爲它的主題很廣泛 – mirzahat

0

從傑夫·阿特伍德優秀博客「編碼恐怖」:

像軟件 工程一切,似乎 模型 - 視圖 - 控制器的概念最初 通過Smalltalk程序。

更具體地說,它是由 發明的一個Smalltalk程序員,Trygve Reenskaug。 Trygve保留了一個頁面 ,用他自己的話來解釋MVC的歷史 。他在1979年12月10日發表在 上的論文中得到這些 定義:

模型模型表示知識。一個 模型可能是一個單一的對象(而不是 無趣),或者它可能是一些 結構的對象。

應該有模型和 其一方面的部分,並將表示 世界之間的一對一的對應 由 所有者另一方面模型的感知。

視圖視圖是其模型的(視覺) 表示形式。通常會強調 某些 屬性的模型,並壓制 其他。它因此充當 演示文稿過濾器。

通過詢問問題,模型(或模型零件 )附帶一個視圖,並從 獲取演示文稿所需的數據 。它可能會通過發送 適當的消息來更新模型 。所有這些 問題和消息都必須在 模型的術語中,因此視圖 必須知道它所代表的 模型的屬性的 語義。

控制器控制器是用戶和系統之間的鏈接 。它 向用戶提供了通過 的輸入來安排相關視圖到 將它們自己呈現在適當的 位置上的屏幕上。它通過給用戶提供 用戶輸入命令和數據的菜單或其他方式 來爲用戶輸出提供 手段。控制器接收到這樣的用戶輸出, 將其轉換成適當的 消息並將這些消息傳遞給 一個或多個視圖。

,最好的辦法理解這一點(類似iOS的編程咳嗽 HIG 咳嗽的許多核心概念),是閱讀蘋果文檔和嘗試它。這裏有一個很好的設計模式概述(包括MVC),適合初學者,包括教程:Link

+0

我已經看到,Reenskaug引用了一兩次,有趣的是它從來沒有真正幫助澄清,但實際上混淆了我對MVC的理解。我理解他在說什麼,但是他說這樣寫得太糟糕了,以至於沒有像你認爲的那樣澄清這個概念。只是一個觀察。 –

3

我強烈推薦由Paul Hegarty編寫的題爲「開發iOS應用程序(HD)」的iTunesU,斯坦福大學系列。

第1課討論MVC和第2課演示它。

這些課程都是免費的,如果您有時間,這些課程非常值得一看。