内存管理篇:9.ARC实现之__autoreleasing
- __autoreleasing修饰的变量与在非ARC环境下,对对象调用autorelease方法效果一致:
|
|
转换后的模拟代码为:
|
|
- 对于将非调用方创建的对象,加入到autoreleasePool中的情况,生成的代码如下:
|
|
转换后的模拟代码为:
|
|
这里在前面strong的情况中有说过,对于函数的返回值,ARC使用objc_autoreleaseReturnValue和objc_retainAutoreleasedReturnValue方法进行优化,避免了将生成的对象在pool中进行进入和取出操作。但是由于接收变量是使用autoreleasing修饰的,故直接将其加入到pool中。