在我的代碼我這樣做,製作類零和釋放參考
ClassA *reference = [[ClassA alloc] init];
[reference invokeMethod];
reference = nil;
[reference release];
沒有參考=零,我知道它會釋放COS其正常的方式這樣做內存。但是在這種情況下,如果我們創建引用nil並在稍後釋放內存,它會刪除創建對象所耗用的較早內存嗎?
謝謝
在我的代碼我這樣做,製作類零和釋放參考
ClassA *reference = [[ClassA alloc] init];
[reference invokeMethod];
reference = nil;
[reference release];
沒有參考=零,我知道它會釋放COS其正常的方式這樣做內存。但是在這種情況下,如果我們創建引用nil並在稍後釋放內存,它會刪除創建對象所耗用的較早內存嗎?
謝謝
號release = nil
只是使內存它最初點不可訪問;它不會消除所消耗的內存。 (此外,這會導致[reference release];
聲明之後無操作)。
正如kenny所說,release = nil只是使參考對象指向nil。現在你已經失去了對ClassA分配對象的控制,並且不能釋放它,所以發生內存泄漏。 [參考發佈]試圖釋放一個零對象的內存,這樣會導致崩潰。
感謝您的回覆 – Dilshan 2010-11-13 12:29:57
感謝Kenny的回覆 – Dilshan 2010-11-13 12:29:12