关于iOS中的开发,里面有很多新名词和新概念,很多都容易把人搞晕,所以此处记录一下这些名词,概念的学习总结:
【MVC】
MVC模式 = Model-View-Controller
更多参考资料:
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】
更多相关参考资料: