안녕하세요, obj-C의 autorelease 함수 호출을 완전히 이해하지 못했습니다.Objective C autorelease
@interface A{
id obj;
}
@implementation A
-(void)myMethod;
{
obj = [BaseObj newObj]; //where newObj is a method like :[[[BaseObj alloc]init]autorelease];
}
-(void)anotherMehtod;
{
[obj someMeth]; //this sometimes gives me EXC_BAD_ACCESS
}
@end
그래서이를 해결하기 위해 보관합니다. 이제이 객체를 유지하려면이 객체를 수동으로 릴리스해야합니까?
측면 참고 : 메소드 이름은'new','copy','retain', 또는'alloc'로 시작하면 코코아의 규칙은, 발신자가 전송해야 'release' 또는'autorelease'로 균형을 잡습니다. 따라서 'newObj'라는 메서드는 자체 결과를 자동으로 릴리즈하지 않아야합니다. –