M:Model 模型 菜谱对象 用户对象 Person Weibo对象 Comment对象
V: View 视图 自定义控件包括自定义View或Cell等
C:Controller 控制器
A类创建B类对象 A类中访问B对象中的内容 叫正向 而B类中访问A类中的内容叫反向调用
反向调用的方式:
如果 A类是Controller B类是Model 方式有:Notification和KVO
如果 非上面情况 则可以通过:Notification和Delegate
KVC:Key Value Coding 键值编码 键值指的是对象的属性名称和属性值 KVC是提供了对对象的属性进行赋值和取值的方式
KVO:Key Value Observer 键值监听 监听属性值得改变
KVO:如果是属性值发生改变 去让Controller响应 用此种方式
Notification(通知):可以实现一对多 效率比Delegate低 耦合度低
Delegate:一对一 效率高 耦合度高 不能使用在M->C中
M->C: Notification、KVO
C->M: 直接访问
V->C:Action datasource Delegate
C->V:直接访问
M->V:不能
V->M:不能
Block:C语言支持的一种语法,类似于方法 有声明、实现和调用
block可以让代码作为参数在方法之间传递
原文:http://www.cnblogs.com/lanyisanqqi/p/5199507.html