2011-06-23 74 views

回答

0

在您的特定示例中,該對象被寫爲變量,以便在將消息添加到視圖(保留該視圖)後可以發送release消息。

沒有變量的等效代碼:

[view addSubview:[[[UILabel alloc] init] autorelease]]; 

我們不需要發送釋放,因爲我們自動釋放的對象。

+0

它什麼時候才真正發佈呢? addSubview運行完成後? –

2

如果你需要的任何資源適度持久句柄,你應該讓一個實例變量,如果有問題的資源應該至少保持適度持久。

在上面的例子中,是的;該標籤應該是一個實例變量,可能是一個使用IBOutlet分配的實例變量。

一般來說,生活在UIKit(而不是基金會)中的大多數東西都受益於通過NIB文件實例化並隨後通過網點訪問。

這不僅僅是一個性能問題;它也與內存管理和碎片有關,並在大多數情況下簡化翻譯和國際化。

2

您的具體情況下,如果你將需要訪問該標籤在稍後的時間點(比如改變文本)保持伊娃將節省您的一些努力試圖再次找到它。

一般的原因是持久性,範圍和方便。