MyClass *var = [[MyClass alloc]initWithSomeNumber:15];
[self addChild:var];
[self removeChild:var cleanup:YES];
我是否必须为release
致电var
?或者removeChild
方法是否已经处理过这种情况?有没有办法在不必使用var
的情况下创建alloc
?我听说有一个名为node
的节点的类方法。但是它不接受参数(正如你所看到的,我需要传递整数15)。
答案 0 :(得分:3)
如果你没有使用ARC,是的,你需要发布它。 self
将在您添加它时保留子项,并在删除它时释放它,这仍然会从您的alloc / init调用中保留隐式保留。
答案 1 :(得分:2)
您拥有自己创建的任何对象
您使用alloc
为var
分配空间,这会将var
引用计数器设置为1.无论此后有多少其他对象声明所有权(通过发送{{1}您必须在retain
上发送release
以将引用计数器递减1.否则,引用计数器将永远不会达到0,这意味着用于var
的内存将永远不会被释放,即最终导致内存泄漏。
var
答案 2 :(得分:1)
使用ARC link会帮助您