我已经看到了两种创建按钮的方法。
UIButton *button = [[UIButton alloc]initWithFrame:CGRectMake(10, 220, 150, 30)];
和
UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
第一种情况是创建按钮对象的常规方法。我已经分配并初始化了一个按钮实例,我必须释放它。我真的很困惑第二种方式。我对此有一些疑问。
答案 0 :(得分:7)
希望这会有所帮助:
答案 1 :(得分:2)
在这种情况下是否创建了按钮实例?
是的,创建了一个实例。
此按钮的保留计数是多少?
保留计数可能是一个,否则生命周期就会消除它。
我应该释放这个按钮吗?
不,你不应该对象是自动释放的。
答案 2 :(得分:1)
来自:http://cocoadevcentral.com/d/learn_objectivec/
关于本地内存管理:
只有一条规则:如果使用alloc或copy创建对象,请在函数末尾向其发送一个release或autorelease消息。如果以任何其他方式创建对象,则不执行任何操作。
答案 3 :(得分:0)
1.)是的,无论你是分配它还是使用工厂方法,都会创建按钮实例。在两种情况下都会创建按钮实例
2.)当前运行循环/循环的保留计数为1,然后在下一循环中,对象将自动释放。因此retainCount将为0.(注意:NSLogging一个retainCount为0将使应用程序崩溃)
3.)不,您不必释放使用工厂方法创建的按钮,它们会自动释放。