Objective-C内存管理面试题一道 财富值67

2016-10-26 16:39发布

下面关于Objective-C内存管理的描述错误的是
A 当使用ARC来管理内存时,代码中不可以出现autorelease
B autoreleasepool 在 drain 的时候会释放在其中分配的对象
C 当使用ARC来管理内存时,在线程中大量分配对象而不用autoreleasepool则可能会造成内存泄露
D 在使用ARC的项目中不能使用NSZone

= =。。
网上看到的,参考答案为A.

我觉得选C来的~

不知道A错在哪里了?

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
4条回答

因为ARC是编译器特性,而不是iOS运行时特性,更不是其他语言中的垃圾收集器。
所以这就意味这它只能处理在编译时就确定的内存管理,所用的机制就是引用计数。
换句话来讲,他的内存释放不是强制的,比如内存相互引用,动态引用等会导致引用计数不会立刻置0,所以这个时候显式释放是有必要的。

一周热门 更多>