iOS面试题(十一)Objective-C语言--总结

Objective-C语言

  •  分类(什么是分类?分类的实现机制、原理是怎样的?我们应该怎样为一个分类提供实例变量呢?--涉及到第2点关联对象的考察)
  • 关联对象(Runtime分析和查看 分类和关联对象的实现机制、原理)
  • 扩展、代理怎么使用(分类和扩展的区别在哪里?)
  • NSNotification(通知的实现机制和原理)
  • KVO、KVC( KVO、KVC的实现机制、原理、包括涉及到了哪些设计思想)
  • 属性关键字(声明属性时,会用到一些关键字的实际问题)
     

1.MRC下如何重写retain修饰变量的setter方法?
我们开发中一般使用ARC,但是一些公司遗留下的文件是MRC下的,所以说需要掌握一些MRC方面的知识内容。


2.请简述分类的一个实现原理:

  • 是由运行时决议的
  • 不同分类中含有同名分类方法,谁最终生效,取决于谁最后参与编译
  • 假如分类中添加的方法恰好是宿主类中的同名方法,分类方法会"覆盖"同名的宿主类方法
  • (所谓的覆盖:消息传递过程中会优先查找数组靠前的元素,若找到了就会调用,但宿主类的同名方法仍然存在)

3.KVO的实现原理是怎样的?

  • 是系统关于观察者设计模式的一种实现(每次当被观察对象的某个属性值发生改变时,注册的观察者便能获得通知)
  • Apple使用isa混写技术(isa-swizzling)来实现KVO,本质是重写了setter方法来动态运行时去为某一个类添加一个子类,然后重写它的setter方法,同时把原有类的isa指针指向新创建的这个类上面。

4.能否为分类添加成员变量?
  关联对象这种技术来为分类添加成员变量。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值