【发布时间】:2013-01-17 16:29:19
【问题描述】:
我仍然不是 100% 了解 ARC 内部结构。
我想澄清几个例子:
在方法内部分配并返回的someObjectToReturn = [[SomeClass alloc] init]; 会发生什么情况?如果someObjectToReturn被分配给例如someObject,someObjectToReturn 什么时候释放?当 someObject 为 nilled 或 someObjectToReturn 是否仍需要添加到自动释放池中?
另一种情况是,如果一个对象数组被清零,是否所有的对象都被释放了?
最后,哪里是释放复制块对象的好地方?还是执行后块仍然会被释放?如果将复制的块添加到自动释放池中,什么时候会耗尽该池? 假设有 10 个块,每个块都添加到自动释放池中,过早将其耗尽会导致正在执行的块死亡。可以从自身内部对复制的块进行 nill,例如将块的 nill 分派回主线程吗?
【问题讨论】:
标签: objective-c automatic-ref-counting