2010-11-13 25 views
0

在我的代碼我這樣做,製作類零和釋放參考

ClassA *reference = [[ClassA alloc] init]; 
[reference invokeMethod]; 
reference = nil; 
[reference release]; 

沒有參考=零,我知道它會釋放COS其正常的方式這樣做內存。但是在這種情況下,如果我們創建引用nil並在稍後釋放內存,它會刪除創建對象所耗用的較早內存嗎?

謝謝

回答

2

release = nil只是使內存它最初點不可訪問;它不會消除所消耗的內存。 (此外,這會導致[reference release];聲明之後無操作)。

+0

感謝Kenny的回覆 – Dilshan 2010-11-13 12:29:12

1

正如kenny所說,release = nil只是使參考對象指向nil。現在你已經失去了對ClassA分配對象的控制,並且不能釋放它,所以發生內存泄漏。 [參考發佈]試圖釋放一個零對象的內存,這樣會導致崩潰。

+0

感謝您的回覆 – Dilshan 2010-11-13 12:29:57