UIButton *btn=[[UIButton alloc] init];
和
UIButton *btn=[UIButton buttonWithType:UIButtonTypeRoundedRect];
这两个声明有什么区别或两者都相同?
答案 0 :(得分:2)
第一个将UIButton
对象分配给btn
。你有责任在完成后释放它,因为你alloc
已经记住了。
第二个将执行相同的操作,但该对象将被自动释放,这意味着您不必显式调用release
,因为操作系统将在必要时执行该操作。
注意:UIButtonType
也不同。
答案 1 :(得分:1)
第一个为您提供一个未自动释放的UIButton
buttonType
UIButtonTypeCustom
第二个为您提供一个UIButton
buttonType
UIButtonTypeRoundedRect
的自动释放{{1}}
答案 2 :(得分:1)
[UIButton buttonWithType:...]
创建一个自动释放的对象(仍然需要内存)。
[[UIButton alloc]init]
创建一个不会被自动释放的对象。你必须自己释放!
进一步了解这个question。
更多关于memory management。