2011-05-25 154 views
0
UIButton *btn=[[UIButton alloc] init]; 

這兩行有什麼區別?

UIButton *btn=[UIButton buttonWithType:UIButtonTypeRoundedRect]; 

的是這兩個聲明或都具有相同的區別?

回答

1
[UIButton buttonWithType:...] 

創建自動釋放對象(其仍需要存儲器)。

[[UIButton alloc]init] 

創建一個不會被自動發佈的對象。你必須自己釋放!

進一步瞭解此question

更多關於memory management

1

一人給你一個不UIButtonTypeCustom

第二種的buttonType自動釋放UIButton給你一個自動釋放UIButtonUIButtonTypeRoundedRectbuttonType

2

第一個將一個UIButton對象分配給btn。當你完成之後,你有責任釋放它,因爲你在內存中添加了內存。

第二個將執行相同的操作,但該對象將被自動釋放,這意味着您不必明確呼叫release,因爲操作系統將在必要時執行該操作。

注:UIButtonType也不同。