最新消息:20210816 当前crifan.com域名已被污染,为防止失联,请关注(页面右下角的)公众号

【整理】iOS中的一些概念的学习总结:MVC,KVO,outlet,delegate

iOS crifan 2731浏览 0评论

关于iOS中的开发,里面有很多新名词和新概念,很多都容易把人搞晕,所以此处记录一下这些名词,概念的学习总结:

 

【MVC】

MVC模式 = Model-View-Controller

 

更多参考资料:

1.iOS MVC详解

2. IOS下的MVC

 

【KVO】

KVO = Key-Value Observing

KVO用于实现:当另一个对象B的属性发生变化时,对象A可以得到通知。

最适合用于,Model和Controller之间的通信。

底层数据Model有变化时,上层View要及时更新,这是基本的逻辑前提,

所以对于上层的View来说,肯定需要知道底层Model的属性的变化,而实现此功能的一种机制就是:

View从Controller得知Model的属性的变化;

而Controller就盯着(observe)Model的属性的变化(从而传递给View);

另外,对于Model来说,其也可以(由于一些数据有相关性而需要)再observe别的model,也可以(由于数据依赖而)observe Model对象自己。

 

而对于Model的属性Property来说,包括:

  • 单个的属性值
  • 一对一的关系属性
  • 一对多的关系属性

 

Introduction to Key-Value Observing Programming Guide中有详细的例子解释和相关参考代码的链接。

Key-Value Observing Implementation Details中介绍了此机制的实现原理。

 

【Notification】

功能上和KVO类似,也是实现变化通知的效果。

notification使用NSNotificationCenter。

 

KVO vs Notification:

1.Notification有一个NotificationCenter,而KVO没有。当对象B发送变化时,此变化是直接发送到对应的Observer,即对象A的,而没有经过类似于Notification的NotificationCenter。

 

 

【outlet】

 

更多相关参考资料:

 

 

【delegate】

 

更多相关参考资料:

转载请注明:在路上 » 【整理】iOS中的一些概念的学习总结:MVC,KVO,outlet,delegate

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
83 queries in 0.188 seconds, using 22.10MB memory