我對有關iPhone開發的MVC範例感到有點困惑。 目前,我把應用分成:MVC中的視圖應該有自己的類嗎?
模型(FooModel.h,FooModel.m)
視圖(FooView.xib)
控制器(FooController.h, FooController.m)
但我應該使用的視圖的UIView(FooView.h,FooView.m)的一個子類..?
這只是一個簡單的遊戲應用程序。
我對有關iPhone開發的MVC範例感到有點困惑。 目前,我把應用分成:MVC中的視圖應該有自己的類嗎?
模型(FooModel.h,FooModel.m)
視圖(FooView.xib)
控制器(FooController.h, FooController.m)
但我應該使用的視圖的UIView(FooView.h,FooView.m)的一個子類..?
這只是一個簡單的遊戲應用程序。
發鈔銀行既不是控制器也不圖。 NIB由控制器(UIViewController.nibName)引用並用於實例化控制器的視圖。默認的nib名稱是您的控制器類的名稱(即,如果您未設置筆尖名稱,它將自動查找「MyViewController.nib」)。
如果您需要編寫完全自包含的UI的代碼,它應該在視圖中。這可能是一個自定義控件或一組控件(例如顏色選擇器視圖)。
如果您需要在UI中實現特定於Foo的任何內容(如自定義繪圖/觸摸處理),則可以添加FooView.m。此外,如果您需要訪問FooView的子視圖,可能更容易將它們設置爲FooView(而不是FooController)上的出口;這意味着你不需要在viewDidUnload中取消它們。
標準命名約定是將其稱爲「FooViewController」,因爲它與UIView層次結構緊密耦合(並且您可能有一個額外的FooController,它可以單獨管理模型;也可以是一個Web界面的FooWebController)模型)。
最終,在長期內做任何最簡單的事情。就個人而言,我不添加額外的類,直到它們顯然是必要的,但我嘗試構造我的代碼,以便重構位。一旦我寫了更多的代碼,我就更好地瞭解它應該如何構造,以及需要多少工作的更好的想法。這可能意味着我花更多時間進行重構,但這也意味着我花更少的時間做一個(錯誤的)設計,或者編寫僅由於一些體系結構變化而只用過一次的類。
有希望的是,這也意味着版本可以更快地走出門外。這個很重要。用戶界面需求變化太快,無法花費大量時間;我們即將對我們的應用程序進行完整的UI大修,以更好地支持iPad和多任務處理。
這會幫助你在理解MVC在iphone更新發育實施: