【发布时间】:2012-04-02 21:53:57
【问题描述】:
我对 Objective-C 还是很陌生,正如你所知道的,直到最近,我还没有真正理解对所有这些 AutoRelease 恶意软件的需求。我认为这主要是因为我已经使用 ARC 开始了 Objective-C,并且没有接触过保留和释放。
无论如何,我现在的理解是,在 ARC 之前,如果你创建了一个对象并需要返回一个指向它的指针作为方法/函数的返回对象,你需要自动释放它,因为你无法做到执行“return obj;”后的“[obj release]”
担心保留和释放不是 ARC 的问题。这是否意味着在我们自己的代码中,创建我们自己的自动释放对象真的有意义吗?即,做[[[Class alloc] init] autorelease]?根据我的收集,我们仍然应该设置自动释放池,但这只是因为其他框架或库可能仍然返回自动释放对象,但我们不再需要自己显式创建自动释放对象 - 这是一个公平的理解吗?
谢谢, 尼克
【问题讨论】:
-
在 ARC 编译的代码中调用
autorelease是非法的,对retain和release的调用也是如此。
标签: objective-c automatic-ref-counting autorelease