###一句话描述消息机制
通知:在iOS中由通知中心进行消息接收和消息广播,是一种一对多的消息传递方式。
代理:是一种通用的设计模式,iOS中对代理支持的很好,由代理对象、委托者、协议三部分组成。
block:iOS4.0中引入的一种回调方法,可以将回调处理代码直接写在block代码块中,看起来逻辑清晰代码整齐。
target action:通过将对象传递到另一个类中,在另一个类中将该对象当做target的方式,来调用该对象方法,从内存角度来说和代理类似。
KVO:NSObject的Category-NSKeyValueObserving,通过属性监听的方式来监测某个值的变化,当值发生变化时调用KVO的回调方法。
RAC,函数式编程和响应式编程,解决复杂状态间的依赖关系,解决MVC的耦合问题。
###非正式协议
在iOS2.0之前还没有引入@Protocol正式协议之前,实现协议的功能主要是通过给NSObject添加Category的方式。这种通过Category的方式,相对于iOS2.0之后引入的@Protocol,就叫做非正式协议。
###正式协议
我们都知道非正式协议了,那么正式协议就不用阐述了。
###stack (栈)对象的创建
只要栈的剩余空间大于stack 对象申请创建的空间,操作系统就会为程序提供这段内存空间,否则将报异常提示栈溢出。
###heap (堆) 对象的创建
操作系统对于内存heap 段是采用链表进行管理的。操作系统有一个记录空闲内存地址的链表,当收到程序的申请时,会遍历链表,寻找第一个空间大于所申请的heap 节点,然后将该节点从空闲节点链表中删除,并将该节点的空间分配给程序。
例如:
NSString 的对象就是stack 中的对象,NSMutableString 的对象就是heap 中的对象。前者创建时分配的内存长度固定且不可修改;后者是分配内存长度是可变的,可有多个owner, 适用于计数管理内存管理模式。
###获取帮助
创新源于一种感觉! http://go-swift.net

###打赏鼓励

iOS消息机制详解
本文深入解析iOS中的消息机制,包括通知、代理、block、target-action、KVO及RAC等不同方式的特点与应用场景,同时对比非正式协议与正式协议的区别,并介绍了栈(stack)与堆(heap)对象的创建机制。

4490

被折叠的 条评论
为什么被折叠?



