2010-11-20 1 views
-1

"앱이 백그라운드로 갈 때 개체를 올바르게 dealloc하는 방법"이라는 질문이 하나 있습니다. 나는 일부 애플 리케이션에서 일하고있어, 모든 것은 훌륭하고 훌륭하게 작동한다. 내가 배경에 응용 프로그램을 넣은 다음 다시 시작하면 충돌이 발생합니다. 즉시 (별표를 붙인 곳에서는 별표를 달았습니다.) 셀을 선택하거나 예를 들어 tableview를 스크롤합니다. 그래서 나는 앱이 이미 데이터를 공개했다는 것을 확신합니다. 여기앱이 백그라운드로 이동하면 개체를 올바르게 dealloc하는 방법?

는 할당 해제의 상관 조언

- (void)dealloc { 


    [anObject release]; 
    [array release]; 
    [locationManager release]; 
    [currentLatitude release]; 
    [currentLongitude release]; 
    [filteredListContent release]; 
    [super dealloc]; 
} 

의 예입니다?

답변

0

I 검토하고 내 자신의 코드를 쓰기 다시. 문제는 내가 메모리 할당 해제에서 예상했던대로였습니다. 나는 autorelease를 사용해서는 안된다. 그것은 여전히 ​​이상한 원인 응용 프로그램이 다시 열 때 충돌이 발생했습니다.

내게 선물을주는 사람이 아닌 여러분 모두 고마워요, 당신은 바보입니다. 기분을 상하게하지 말고, 조언을 해주는 것 대신에 근거가없는 부정을 제공하십시오.

1

앱 대리인의 applicationDidEnterBackground 메소드에서 특정 항목 할당을 취소하지 않는 한 자동으로 할당 해제되지 않아야합니다.

나는 당신이 가진 문제를 한번도 경험하지 못했습니다. 당신이 배경에 절대 넣지 않더라도 잠시 후 똑같은 일이 일어나지 않는다고 확신합니까?

다음은 배경 처리 물건 모두 함께 맞는 방법에 대한 좋은 설명입니다 :

Understanding iOS 4 Backgrounding and Delegate Messaging

0

이와 같은 개체를 공개하지 마십시오. 용도 :

- (void)dealloc { 

if(anObject){ 
[anObject release]; 
anObject = nil; 
} 
if(array){ 
[array release]; 
array = nil; 
} 
//same approach for all. 

[super dealloc]; 
}