2010-08-17 32 views
2

我對有關iPhone開發的MVC範例感到有點困惑。 目前,我把應用分成:MVC中的視圖應該有自己的類嗎?

  1. 模型(FooModel.h,FooModel.m)

  2. 視圖(FooView.xib)

  3. 控制器(FooController.h, FooController.m)

但我應該使用的視圖的UIView(FooView.h,FooView.m)的一個子類..?

這只是一個簡單的遊戲應用程序。

回答

1

發鈔銀行既不是控制器也不圖。 NIB由控制器(UIViewController.nibName)引用並用於實例化控制器的視圖。默認的nib名稱是您的控制器類的名稱(即,如果您未設置筆尖名稱,它將自動查找「MyViewController.nib」)。

如果您需要編寫完全自包含的UI的代碼,它應該在視圖中。這可能是一個自定義控件或一組控件(例如顏色選擇器視圖)。

如果您需要在UI中實現特定於Foo的任何內容(如自定義繪圖/觸摸處理),則可以添加FooView.m。此外,如果您需要訪問FooView的子視圖,可能更容易將它們設置爲FooView(而不是FooController)上的出口;這意味着你不需要在viewDidUnload中取消它們。

標準命名約定是將其稱爲「FooViewController」,因爲它與UIView層次結構緊密耦合(並且您可能有一個額外的FooController,它可以單獨管理模型;也可以是一個Web界面的FooWebController)模型)。

最終,在長期內做任何最簡單的事情。就個人而言,我不添加額外的類,直到它們顯然是必要的,但我嘗試構造我的代碼,以便重構位。一旦我寫了更多的代碼,我就更好地瞭解它應該如何構造,以及需要多少工作的更好的想法。這可能意味着我花更多時間進行重構,但這也意味着我花更少的時間做一個(錯誤的)設計,或者編寫僅由於一些體系結構變化而只用過一次的類。

有希望的是,這也意味着版本可以更快地走出門外。這個很重要。用戶界面需求變化太快,無法花費大量時間;我們即將對我們的應用程序進行完整的UI大修,以更好地支持iPad和多任務處理。

相關問題