面试题答案
一键面试- 对象释放时间:当执行到
[obj release]
时,obj
指向的MyClass
对象会被释放(前提是引用计数减为0)。 - 释放原理:
- 在MRC环境下,
[[MyClass alloc] init]
操作会创建一个MyClass
对象,并使该对象的引用计数初始值为1。此时,obj
指针指向这个对象,对象因为被obj
引用,所以引用计数为1。 - 执行
[obj doSomeTask]
,这只是对对象方法的调用,不会改变对象的引用计数。 - 执行
[obj release]
时,对象的引用计数会减1。由于初始引用计数为1,减1后变为0。当对象的引用计数变为0时,系统会调用对象的dealloc
方法,在dealloc
方法中会释放对象所占用的内存空间,从而完成对象的释放。
- 在MRC环境下,