[英]Understanding MVC design in iOS
我正在努力使自己了解iOS的MVC,並且我想確保自己正在做的事情是適當的。
假設我有一個簡單的類,其中包含一個NSString *的NSMutableArray
@interface SimpleClass : NSObject
@property (nonatomic, strong) NSMutableArray *names;
@end
這是我的模型 是?
假設我想編寫一種方法,按字母順序對這些名稱進行排序。 此方法應該是模型中的方法,還是在數據控制器類中單獨完成? 對我來說,在模型中使用此方法會更有意義。 那么該模型是否進行實際排序,而控制器是初始化排序的地方?
聽起來對嗎?
但是,由於對數據進行排序是視圖顯示所必需的,因此這真的是模型的基本行為嗎?
讓我一一澄清您的所有疑問
問題 :假設我有一個簡單的類,其中包含一個NSString *的NSMutableArray
這是我的模型 是?
答 :是的,它是模型類,因為它在世界上僅用於“處理數據”的單一目的。
問題 :假設我想編寫一種方法,按字母順序對這些名稱進行排序。 此方法應該是模型中的方法,還是在數據控制器類中單獨完成? 對我來說,在模型中使用此方法會更有意義。 那么該模型是否進行實際排序,而控制器是初始化排序的地方?
答 :應該考慮這種方法,因為它只是根據您的需求對數據進行排序,將來某天您可能需要以其他方式對數據進行排序。 或者,您可能還需要為其他設備開發此應用程序。 並且由於某些其他要求,您可能需要以其他方式對其進行排序。 如果要在模型類或控制器類中執行此操作,則將代碼限制為可伸縮的,因此它應在視圖類中。
控制器將實現所有業務邏輯。
我希望這有幫助
如果我們想在iOS中應用MVC,我們有兩部分專門模型和viewContoller,這里視圖和控制器是在iOS中結合使用的,您可以根據需要創建單獨的視圖和控制器。
現在,在您的問題中,您將使用NSMutable數組創建一個類,該類將成為您的模型類。
現在您說要對數據進行排序,而不是可以在iOS視圖中的viewContoller上進行排序,並且控制器已合並,因此您可以對控制器部分中的數據進行操作並在視圖上顯示結果。
但是,如果要為顯示操作創建單獨的視圖,則可以創建UIView並添加到視圖控制器。
例如,如果您創建的應用程序要處理Web服務,那么您可以執行類似的操作
創建DAO(數據訪問對象),該DAO管理所有Web服務調用,並從服務器獲取數據並將其設置為模型。
在viewController(UIview控制器)中對數據進行操作並在視圖或3中顯示。crate spepate view for display data對視圖控制器中的模型數據執行所有操作,並將模型數據設置為視圖並將此視圖添加到viewcontroller。
希望這對您有更多幫助,請參閱此鏈接https://developer.apple.com/library/ios/documentation/general/conceptual/CocoaEncyclopedia/Model-View-Controller/Model-View-Controller.html
http://blog.teamtreehouse.com/ios-design-patterns-model-view-controller-part-3這可能會對您有所幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.