2012-03-26 3 views
-4

내 iPad 앱에서언젠가 후에 앱이 다운됩니다 : - (void) viewDidUnload 메서드

나는 AQGridView를 사용하고 있습니다.

이 응용 프로그램은 모든 카드를 해당 카테고리와 일치시키는 데 관한 것입니다.

나는 세포를 지우고 있습니다.

방금 ​​앱을 몇 분 동안 열어두면 은 깨지지 않습니다..

하지만 3 ~ 4 분삭제 많은 세포는 방법으로 충돌을 받고위한 응용 프로그램을 재생하고있는 경우.

일부 기억 나는 하나 개의 어레이 내가 그것을 셔플하고있는 중이 야 imageMarray

전화가 내가 해결할 수 ...

누수.

보기로드.

imageMArray=[NSMutableArray initWithArray:CategoryImages]; 
imageMArray=[[self shuffleOnlyArray:imageMArray] retain]; 

shuffleOnlyArray 방법

-(NSMutableArray*)shuffleOnlyArray:(NSMutableArray*)sourceArray 
{ 
    NSMutableArray *destArray1 = [[[NSMutableArray alloc] initWithCapacity: [sourceArray count]] autorelease]; 

    srandom(time(NULL)); 

    while ([sourceArray count] != 0) 
    { 
     NSUInteger index = (NSUInteger)(random() % [sourceArray count]); 
     id item = [sourceArray objectAtIndex: index]; 
     [destArray1 addObject: item]; 
     [sourceArray removeObjectAtIndex:index]; 
    } 

    [sourceArray release]; 
    sourceArray=nil; 
    return destArray1; 
} 

과 셔플 방법에서 나는 자료를 작성해야

imageMArray=[[self shuffleOnlyArray:imageMArray] retain]; 

을 쓰고 있어요. 그래서 메모리 누수가 제거됩니다.

+0

라인을 삭제 해 보셨습니까? – CodaFi

+0

이전에는 viewDidUnload 메서드에서 다른 뷰 컨트롤러에서 충돌이 발생했습니다. 따라서이 메서드의 모든 행을 주석 처리했습니다. 이제 다른 뷰 컨트롤러에서 충돌합니다. –

+0

이 항목을 nil로 설정하는 이유는 무엇입니까? ARC에서는 불필요하며 ARC가 없으면 간단한 릴리스 메시지로 충분합니다. – CodaFi

답변

2

문제가 참조 카운팅과 관련 있다고 생각되면 '제품> 분석'을 선택하여 Xcode에서 보유 및 출시 및 기타 문제를 모두 확인하십시오.

+0

당신은 저도 그렇게했습니다. 문제가 해결되었습니다. –

관련 문제