2011-11-16 76 views

回答

9
object = nil; 
[object release] 

不這樣做。您正在發送一個release消息在一個無所事事的零對象上。但是由對象引用的對象仍然在內存中,因爲它從未收到過release消息。

[object release]; 
object = nil; 

在這裏,您釋放的對象,爲了方便和安全,您設置nil其參考。所以你可以調用(當然錯誤:-))該對象上的任何方法,並且該應用程序不會崩潰。

但是如果你使用一個保留的財產@property(nonatomic, retain),美其名曰:

self.object = nil; 

等於致電:

[object release]; 
object = nil; 
+0

嗨@Oliver ,這對於'[object release];'&'[object release]; object = nil;'當'你使用保留屬性@property(nonatomic,retain)'時是相等的? – Kjuly

+1

@Kjuly:不,如果你只是釋放它,它不會被設置爲零。如果您將其設置爲零,則將其釋放並設置爲零。如果您釋放並將其設置爲零,則將其設置爲零也是一樣。當然,對於保留的財產。 – Oliver

+0

謝謝! @Oliver:D – Kjuly

相關問題