2011-05-25 118 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也不同。