3

Book我發現了一個句子,告訴我ARC只從Foundation發佈Object。這是真的?所以,如果我有:ARC適用於所有對象?

MySimpleClass *objectFromMySimpleClass = [MySimpleClass alloc] init]; 

我應該釋放objectFromMySimpleClass?我怎樣才能做到這一點?當我嘗試

[objectFromMySimpleClass release]; 

我看到在Xcode提示無效的「發佈」,然後編譯器說,我不能這樣做,因爲ARC。發生什麼了?

等東西。當我使用NSCoping協議時,我應該也釋放對象當我使用副本

+1

這不是指'NSObject'類嗎?如果是這樣,你的班級是從那個班級派生的,所以一切都很好。 – trojanfoe 2012-04-19 09:46:35

+0

我只是跟着書的作者;)所以,當我從NSObject繼承這是非常酷。這是有道理的,我沒有想到這一點。謝謝 – Kuba 2012-04-19 09:50:21

+0

你確定你正在鏈接到正確的書嗎?那個是在ARC發佈之前寫的,所以我懷疑它裏面有沒有提及ARC。 – 2012-04-19 14:44:04

回答

5

MySimpleClass繼承NSObject,因此它是一個基礎對象,所以它可以由ARC管理。

+0

除類別覆蓋保留/釋放的情況外。在類似的類中(例如撰寫本文時的NSWindow),我相信你必須使用非零弱變量。 – 2012-05-31 00:27:37

1

是的,ARC適用於所有對象,並且無法在運行時使用release和retain。