iOS-底层常见的面试问题

OC语法相关的面试

今天先提出一些我们常见的语法面试问题。
然后根据这些问题去思考去分析底层的原理,以及为什么这么设计好处是什么呢?
在接下的的博客中我会一一为大家讲解

一.对象的本质

  • 一个NSObject对象占用多少内存?
  • OC对象的分类?
  • 对象的isa指针指向哪里?
  • OC的类的信息存放在哪里?

二.KVO

  • KVO的本质是什么?
  • 如何手动触发KVO
  • 直接修改成员变量会触发KVO么?

三.KVC

  • 通过KVC修改属性会触发KVO么?
  • KVC的赋值和取值过程是怎样的?原理是什么?

四.Category

  • Category的使用场合是什么?
  • Category的实现原理?
  • CategoryClass Extension的区别是什么?
  • Category中有load方法吗?load方法是什么时候调用的?load 方法能继承吗?
  • loadinitialize方法的区别什么?它们在category中的调用的顺序?以及出现继承时他们之间的调用过程?
  • Category能否添加成员变量?如果可以,如何给Category添加成员变量?

五.Block

  • block的原理是怎样的?本质是什么?
  • __block的作用是什么?有什么使用注意点?
  • block的属性修饰词为什么是copy?使用block有哪些使用注意?
  • block在修改NSMutableArray,需不需要添加__block
  • 有几种类型的block?分别是哪些呢?

之后可能会扩展的 待补充

六.

原文地址:https://www.cnblogs.com/junhuawang/p/13475857.html