码迷,mamicode.com
首页 > 其他好文 > 详细

oc笔试题

时间:2020-04-16 13:23:51      阅读:81      评论:0      收藏:0      [点我收藏+]

标签:成员变量   如何   对象   tom   运行   观察者模式   方案   生效   color   

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笔试题

标签:成员变量   如何   对象   tom   运行   观察者模式   方案   生效   color   

原文地址:https://www.cnblogs.com/WellLin/p/12711842.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!