我很熟悉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