不小心看到的一个面试题解释将是对象和野指针的问题。(本着不误人子弟的想法给出的概念)
僵尸对象:
指的是一个已经被回收 但是 这个对象的数据还在内存中. 像这样的对象就叫做僵尸对象. 僵尸对象有可能可以访问,也有可能不能访问.
当僵尸对象所占用的空间还没有分配给别人使用的时候,这个对象的数据其实仍然存在.
通过指针仍然可以找到这个对象,所以这个时候这个对象还可以使用.
当僵尸对象所占用的空间已经分配给别人的时候,这个对象就不存在了.就要无法使用了.
野指针:
C语言中的野指针: 指的是声明1个指针变量.没有为这个指针变量初始化.那么这个指针变量的值就是1个垃圾值.
指向内存中随机的1块空间,这个指针就叫做野指针.
OC中的野指针: 1个指针指向的对象已经被释放了.那么这个指针就叫做野指针.