2012-08-30 4 views
0

다음 CLASS 도우미 함수에서 메모리 누수가 발생합니다 (아래 >> 참조).NSSortDescriptor 코드의 iOS 메모리 누수

+ (NSArray *)findAllRoomsInContext:(NSManagedObjectContext *)context; 
{ 
    NSEntityDescription *entity = [self entityDescriptionInContext:context]; 
    NSFetchRequest *request = [[[NSFetchRequest alloc] init] autorelease]; 
    [request setEntity:entity]; 

    >> NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"name" ascending:YES selector:@selector(localizedCaseInsensitiveCompare:)]; 
    >> NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil]; 
    [request setSortDescriptors:sortDescriptors]; 

    NSError *error = nil; 
    NSArray *results = [context executeFetchRequest:request error:&error]; 
    if (error != nil) 
    { 
     //handle errors 
    } 

    sortDescriptors = nil; 

    return results; 
} 

답변

1

당신은 sortDescriptorsortDescriptors하지만 내가 해제하는 경우는 컴파일되지 않도록 ARC를 사용하여 최종

NSSortDescriptor *sortDescriptor = [[[NSSortDescriptor alloc] initWithKey:@"name" ascending:YES selector:@selector(localizedCaseInsensitiveCompare:)] autorelease]; 
NSArray *sortDescriptors = [NSArray arrayWithObjects:sortDescriptor, nil]; 
+0

에서 그들을 석방 ALLOC. – jdog

+0

ARC를 사용 하시겠습니까? 왜냐하면 당신의 코드에'autorelease'가 있기 때문입니다. –

+0

컴파일하는 동안 ARC에서 해당 파일을 제외시키고 싶습니다. 고마워. – jdog