UIButton *btn=[[UIButton alloc] init];
UIButton *btn=[UIButton buttonWithType:UIButtonTypeRoundedRect];
的是这两个声明或都具有相同的区别?
UIButton *btn=[[UIButton alloc] init];
UIButton *btn=[UIButton buttonWithType:UIButtonTypeRoundedRect];
的是这两个声明或都具有相同的区别?
[UIButton buttonWithType:...]
创建自动释放对象(其仍需要存储器)。
[[UIButton alloc]init]
创建一个不会被自动发布的对象。你必须自己释放!
进一步了解此question。
更多关于memory management。
一人给你一个不UIButtonTypeCustom
第二种的buttonType
自动释放UIButton
给你一个自动释放UIButton
有UIButtonTypeRoundedRect
的buttonType
第一个将一个UIButton
对象分配给btn
。当你完成之后,你有责任释放它,因为你在内存中添加了内存。
第二个将执行相同的操作,但该对象将被自动释放,这意味着您不必明确呼叫release
,因为操作系统将在必要时执行该操作。
注:UIButtonType
也不同。