oc笔试题
Posted welllin
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oc笔试题相关的知识,希望对你有一定的参考价值。
MRC下如何重写retain修饰变量的setter方法?
@property (nonatomic,retain) id obj; - (void)setObj:(id)obj{
//这里为什么要有个对原来对象的判断 其实是非常必要的 假如传入的对象就是原来的对象 执行release的时候 会把原来的对象释放掉 nil的obj再retain就是crash if(_obj != obj){
[_obj release];
_obj = [obj retain];
} }
请简述分类的实现原理。
运行时决议
不同分类的同名方法最终谁会生效取决于最后编译的方法
分类方法会覆盖原类方法(覆盖不是真的覆盖 只是优先查找的顺序)
kvo的实现原理
观察者模式的实现
isa混写技术 运行时添加被监听类的子类 原有类的isa指针指向子类 重写setter方法 实现监听
能否为分类添加成员变量?
关联对象方案可以实现
以上是关于oc笔试题的主要内容,如果未能解决你的问题,请参考以下文章