MVC (model , view , controller)
对于有过gui开发经验或者熟悉design patter 的程序员来说,MVC模式的魅力有目共睹。
记得真正开始了解mvc,正是用gtk开发程序的阶段。而mvc正是ios 5ui开发的核心指导模式。
ios 大概包含4个layers:
Cocoa touch : Multi touch , core motion , webview , map kit , camera
Media :Core audio , Audio miing , video playback ...
Core Services:Collections , Address Book , Networking , SQLite...
Core OS : OSX Kernel , Power management,File System , Sockets , Bonjous ...
所谓view(display part),正是直接呈现再用户面前的东西,比如gtk中的treeview,tableview, 对应的cocoa中也有,而且更
丰富,比如webview .
而model(what your application is) ,为view解释(interprete)和组织了(format)数据。
controller (UI logic)正是model 和view通信的纽带,因为他们不能直接通信 .
contoller 和view的通信 主要靠outlet和action(类似gtk中的signal)来实现
--The controller can drop a target on itself , then hand out an action to the view ,the views send the action when things happen in the UI
View通过委托(delegate)来与controller同步信息,可通过设置datasource property从Controller获得数据
所以我们说 controller作为view的 delegate和datasource而存在。
model不能与view和controller直接通信,它的数据更新是通过radio station( Notification & KVO)的方式传递的。
controller可以有选择的接受.