다음과 같은 방법이 있습니다.iPhone에서 NSString을 릴리스해야하는 경우
-(NSMutableArray *) getPaises {
NSMutableArray * paises;
paises = [[NSMutableArray alloc] init];
while(get new row) {
NSString *aPais = [NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledStatement, 0)];
[paises addObject:aPais];
}
return paises;
}
응용 프로그램이 충돌하면 aPais를 공개하지 않습니다. 나는 언제 그것을 사용했는지 어딘가에서 풀어야하는지, 만약 그렇다면 어떻게해야 하는지를 모른다. NSMutableArray를 릴리스하면 충분합니까? 아니면 그것을 통과하여 각 객체를 릴리스해야합니까?
그리고 내가 그것을 내놓지 않아도된다면 누가 공개 할 책임이 있습니까?
메서드 이름 지정에 관한 참고 사항 : "getFoo"라는 메서드는 참조로 foo를 반환합니다. - (void) getFoo : (out NSMutableArray **) outArray. Cocoa 명명 규칙과 일관성을 유지하기 위해 메소드의 이름을 "paises"로 지정해야합니다. –