2012-07-31 103 views

回答

0

感謝您對您所有的迴應,但正確回答我的問題(在釋放實例對象。我應該把在問題...對不起你們)如下:

for (int x =0; x<[toBeDeletedArray count]; x++) { 
    UIButton* __weak butt = (UIButton*)[toBeDeletedArray objectAtIndex:x]; 
    [butt removeFromSuperview]; 
    butt = nil; 
    } 

關鍵的一點是要申報爲「__weak」,那麼它可以被設置成零。

感謝您的靈感!

0

使用ARC,您不能調用dealloc,release或retain,儘管您仍然可以保留並釋放CoreFoundation對象。不幸的是,使用ARC時不能手動釋放對象。你嘗試過弱或強的參考對象嗎?

1

當您處於ARC之下時,您只需「發佈」一個對象即可將其引用設置爲nil

就你而言,除非你將所有這些UIButton都保存在一個數組或其他地方,否則你只需要將它們從超級視圖中刪除。當然,如果你再次需要它們,你將不得不重新添加它們

+0

其實我只是嘗試設置按鈕=零,我得到一個錯誤,說我需要聲明它強大,讓這個。我該怎麼做? – minjiera 2012-08-01 11:42:16

+0

@minjiera你現在如何聲明按鈕? – 2012-08-01 12:59:00

+0

我在一個函數內創建了它們。當用戶在屏幕上進行某些操作時,會多次調用此功能。但是ARC會保留它們直到我改變視圖... – minjiera 2012-08-01 17:22:07

0

我懷疑你會看到任何性能影響,除非你有太多的按鈕,或者你的枚舉塊每個按鈕需要大量的時間。

無論如何,你可以刪除元素從它的上海華與...

[view removeFromSuperView];