这两行有什么区别?

问题描述

|
UIButton *btn=[[UIButton alloc] init]; 
UIButton *btn=[UIButton buttonWithType:UIButtonTypeRoundedRect];
这两个声明之间有什么区别或相同?     

解决方法

[UIButton buttonWithType:...]
创建一个自动释放的对象(仍然需要内存)。
[[UIButton alloc]init] 
创建一个不会自动释放的对象。你必须自己释放! 进一步看这个问题。 以及有关内存管理的更多信息。     ,第一个将“ 4”对象分配给“ 5”。您必须负责在完成后释放它,因为您已“ 6”化了内存。 第二个将执行相同的操作,但是该对象将被自动释放,这意味着您不必显式调用
release
,因为操作系统将在必要时执行该操作。 注意:
UIButtonType
也有所不同。     ,第一个给您一个未自动发行的
UIButton
,其中
buttonType
UIButtonTypeCustom
第二个是自动发行的
UIButton
buttonType
UIButtonTypeRoundedRect