我很熟悉Objective-C,正如你可能收集的一样,直到最近,我还没有真正理解所有这些AutoRelease malarky的需求。我认为这主要是因为我已经用ARC开始了Objective-C,并且没有任何接触保留和发布的机会。无论如何,我现在的理解是,ARC之前,如果你创建了一个对象,并且需要返回一个指向它作为方法/函数的返回对象的指针,那么你需要自动释放它,因为你无法做完“return obj”之后再做“[obj release]”在Objective-C中使用ARC时AutoRelease是否是多余的?
担心保留和发布不是ARC的问题。这是否意味着在我们自己的代码中,真正需要创建自己的自动释放对象?也就是说,[[[Class alloc] init] autorelease]?从我收集的内容来看,我们仍然应该设置autorelease池,但仅仅是因为其他框架或库可能会返回自动释放对象,但我们不再需要自己显式创建自动释放对象 - 这是否是一种公平的理解?
感谢, 尼克
调用'autorelease'在ARC编译的代码中是非法的,对'retain'和'release'的调用也是非法的。 – jlehr 2012-03-17 19:07:57