iOS NSObject

协议中<NSobject>是什么意思? 子类继承了父类,子类会遵守父类遵守的协议吗?

会遵守NSObject协议,但是只在头文件中声明,编译器是不会自动生成实例变量的。需要自己处理getter和setter 方法

NS/CF/CG/CA/UI这些前缀分别是什么含义:

CF CocoaFundation框架

CG CoreGraphics框架

CA Coreanimatigon框架

UI UIkit框架


我们说的Objective-c 是动态运行时语言 So what ? when we call object c is runtime language what does it mean ?

主要是将数据类型的确定由编译时,推迟到了运行时。这个问题其实涉及到两个给你按,运行时和多态。

简单的说运行时使我们知道运行时才去决定一个对象的类别,以及调用改类别对象指定方法。

多态:不同的对象以及自己的方法相应相同的消息的能力叫做多态。

意思就是假设生物类都拥有一个相同的eat方法,那人类也属于生物,猪也是生物都继承了lift后,实现搁置的eat,但是调用是我们需要调用各自的eat方法。也就是不同的对象以自己的方式相应了相同的消息。因此也可以说运行时机制十多态的基础。

NotificationCenter KVO KVC Delegate 之间有什么区别

KVO 一对多,观察者模式,键值观察机制,他提供了观察耨个属性变化的方法,极大地简化了代码。

KVC 是键值编码,一个对象调用setValue的时候 1检测是否存在相应的key的set方法,存在就调用Set方法2set方法不存在就检查key的成员是否存在存在就赋值。如果key没找到 就查找相同名称的key,存在就赋值。如果没有就调用valueForUndefinekey好setValue:forUndefinedKey.

Delegate 通常发送者和接受者关系是直接的一对一的关系。

1代理的目的是改变或传递控制链,允许一个类在某个特定的时刻通知到其他类,而不惜要获取那些类的指针。

2可以减少框架的浮复杂度,消息的发送者告知接受者某个事件将要发生,delegate同意然后后发送者相应事件,delegate机制使得接受者可以改变发送者的行为。

Notification:观察者模式,通常发送者和接收者是多对多关系,详细的发送者告知接收者事件已经发生或者将要发送,仅此而已,接收者并不能反映过来影响发送者的行为。

区别

效率肯定是delegate 比NSNotification高。

delegate方法比notification 更加直接,需要关注返回值,所以delegate方法往往包含should这个很传神的词,相反的notification最大的特色就是不关心结果。所以notification往往用did这个词汇。

两个模块之间的联系不是很紧密,就用notification传值,例如多线程之间的传值用notification。

delegate 只是一个较为简单的回调,且主要用在一个模块中,例如底层的功能完成了,需要将一些值传到上层去,就事先把上层的函数通过delegate传到低层,然后到底层call这个delegate,他们都在一个米快中,完成一个功能,例如NavgationController从B到A点返回按钮可以用delegate。




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值