0

방금 ​​응용 프로그램을 ARC로 업그레이드했지만 대리인이있는 클래스를 처리하는 방법에 문제가 있습니다. iOS 4.0 이상을 대상으로하기 때문에 위임 포인터를 저장하려면 __unsafe_unretained@property (unsafe_unretained)을 사용하고 있습니다.ARC로 업그레이드 한 후 위임자 포인터 문제가 발생했습니다.

그러나 지금 내가 아는 것은 뷰 컨트롤러에서 만든 서비스 (위임을 포함하는)가 뷰 컨트롤러를 제거한 후에 뷰 컨트롤러에서 다시 생성된다는 점입니다. 델리게이트가 해제 된 후 ...) 그리고 좀비가 활성화되면 오류가 발생합니다.

뷰 컨트롤러가 제거되면 (탐색 컨트롤러 스택에서 꺼내 질 때) 델리게이트 포인터가있는 서비스도 메모리에서 제거되도록 뷰 컨트롤러 또는 서비스에서 내 코드를 업데이트하려면 어떻게해야합니까? 'didUpdateUserLocation :지도보기'뷰 컨트롤러 후이 속한

답변

0

NSZombie 보내는을 유지하는 MKMapViewDelegate로 인해 밝혀졌다 기분을 상하게하는 ... 그것은 그 잘못 아무것도의 날 아니라고 밝혀 할당이 해제됩니다. 알아.

나는 내보기 컨트롤러에서 뒤로 단추를 차단하여 해결하고 터지는 전에 무기 호에 위임을 설정

- (void)backButtonTapped 
{ 
    self.mapView.delegate = nil; 
    [self.navigationController popViewControllerAnimated:YES]; 
} 

이 할당 해제 된 후 MapKit가 대리인에 보유하고 이유를 모르겠어요 '디. 누구든지 알고 있으면 더 많은 것을 알아 내서 감사 할 것입니다.

관련 문제