OC语法相关的面试
今天先提出一些我们常见的语法面试问题。
然后根据这些问题去思考去分析底层的原理,以及为什么这么设计好处是什么呢?
在接下的的博客中我会一一为大家讲解
一.对象的本质
- 一个NSObject对象占用多少内存?
- OC对象的分类?
- 对象的isa指针指向哪里?
- OC的类的信息存放在哪里?
二.KVO
- KVO的本质是什么?
- 如何手动触发KVO?
- 直接修改成员变量会触发KVO么?
三.KVC
- 通过KVC修改属性会触发KVO么?
- KVC的赋值和取值过程是怎样的?原理是什么?
四.Category
- Category的使用场合是什么?
- Category的实现原理?
- Category和Class Extension的区别是什么?
- Category中有load方法吗?load方法是什么时候调用的?load 方法能继承吗?
- load、initialize方法的区别什么?它们在category中的调用的顺序?以及出现继承时他们之间的调用过程?
- Category能否添加成员变量?如果可以,如何给Category添加成员变量?
五.Block
- block的原理是怎样的?本质是什么?
- __block的作用是什么?有什么使用注意点?
- block的属性修饰词为什么是copy?使用block有哪些使用注意?
- block在修改NSMutableArray,需不需要添加__block?
- 有几种类型的block?分别是哪些呢?
之后可能会扩展的 待补充
六.