샘플 코드를 사용해야합니까 :버전은 객체를 반환하거나 내가 오토 릴리즈
- (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에 autorelease를해야하거나 내가 someOtherMethod에서 반환 된 객체를 해제 할 수 있습니까?
나는 [self createFoo]가 아니라 [self Foo]를 호출한다고 가정하고, someOtherMethod에서 해제하는 것이 좋습니다. 그냥 ARC는 거의 모든 문제를 없애 버리겠습니다. –
@ilMalvagioDottorProsciutto ARC 주석에 동의하는 동안 ARC가 단순히이 호출을 넣는 것 외에도 수동으로 수행해야하는 방법에 대한 지식이있는 것이 좋습니다. 어쨌든, 그것이 무엇을하는지 알면 아주 좋습니다. –
@ SimonLee 정확하게 내 생각 – peko