Do Not Think!!!

Posted
Filed under 01010101
아이폰 개발을 하면서 지도를 사용하다가 발생한 문제에 대한 포스팅입니다.

아이폰 개발을 하면서 아래 그림처럼 지도를 사용했습니다.
현재 뷰에서 버튼을 누르면 지도를 보여주도록 했습니다.
그런데 지도를 닫고 나면 앱이 죽는 문제가 발생을 했습니다.
물론 지도를 닫으면서 release 를 시켰구요...

사용자 삽입 이미지

1 지도를 부르고, 2 지도를 닫고, 잠 시 후 앱이 꺼지는 문제 발생



한참을 찾아본 결과
맵뷰에 delegate 를 지정해서 사용하는데, 맵뷰가 이 delegate 를 잡고 있어서 발생한 문제였습니다.
즉, 맵뷰가 이미 release 된 delegate 에 메시지를 보내기 때문에 문제가 발생하는건데,

이 코드를
[code]- (void)dealloc {
    [mapView release];
}[/code]

이 코드처럼 수정하면 됩니다.
[code]- (void)dealloc {
    mapView.delegate = nil;
   [mapView release];
}[/code]