示例代码:释放返回的对象还是我必须使用自动释放
- (Foo*)createFoo {
Foo *foo = [[Foo alloc] init];
return foo;
}
- (void)someOtherMethod {
Foo *foo;
foo = [self createFoo]; //retain count 1
[foo release]; //retain count = 0 => object gets released?
//repeat
foo = [self createFoo];
[foo release];
}
Qeustion(可能是愚蠢的一个):我必须在createFoo自动释放或者我可以释放someOtherMethod返回的对象?
我想你正在调用[self createFoo]而不是[self Foo],然后可以在其他方法中释放它。请记住,ARC可以让你摆脱几乎所有的问题...... –
@ilMalvagioDottorProsciutto虽然我同意ARC的评论,但我认为应该如何手动完成它是很好的,除了ARC只是把这些调用无论如何,知道它在做什么是非常好的。 –
@SimonLee完全是我的想法 – peko