2010-12-28 8 views
1

NSArray를 반환하는 함수가 있지만 리턴 라인 이후 배열을 릴리스 할 수 없으므로 메모리 누수가 발생합니다. 어떻게 릴리스 할 수 있습니까? 감사합니다. .NSArray - 메모리 누출 방법?

-(NSArray *)readDataFromDatabase 
{ 

    return NSArray; 

} 

답변

2

체크 복귀하기 전에 다음

- (NSArray*) readDataFromDatabase 
{ 
    // option 1: create an auto-released array 
    NSArray* a = [NSArray arrayWithObjects: ...]; 
    return a; 

    // option 2: autorelease manually 
    NSArray* aa = [[[NSArray alloc] initWithObjects: ...] autorelease]; 
    return aa; 
} 
1

어레이 오토 릴리즈 apple's docs for autorelease

+0

제가 반환 않았다 [arrayNextQuestion 오토 릴리즈]; 하지만 그것은 응용 프로그램을 크래시. – mohacs

+0

실제 코드를 게시하십시오. – vikingosegundo

+0

알았습니다. 나는 배열 앞에서 배열 내부의 객체를 해제하려고했다. 이제 autorelease가 배열이 아니라 모든 것을 이해할 수있게되었습니다. 누수가 고정되었습니다. 많은 감사. – mohacs