"... 주소에서 할당 해제 된 인스턴스로 전송되었습니다."라는 메시지와 함께 응용 프로그램에서 충돌이 발생합니다. 그래서, 나는 좀비 도구로 앱을 분석했고, 아래에 충돌을 일으키는 코드 단편을 제시했습니다. 아직이 오류의 원인이되는 시나리오를 찾지 못했습니다.deallocated 인스턴스로 전송 된 메시지 - 좀비와 함께 분석되었습니다.
(void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control
{
if ([view.annotation isKindOfClass:[MKUserLocation class]]) {
}
else {
CustomAnnotation *ann = (CustomAnnotation *) view.annotation;
if (ann.annotationType == BusAnnotationType) {
NSLog(@"accessory button tapped for annotation %@", view.annotation);
BusInfoViewController *viewController = [[BusInfoViewController alloc] initWithNibName:@"BusInfoViewController" bundle:nil];
BusForStation *bus = [self getBusWithId:[(CustomAnnotation *)view.annotation ID]];
viewController.currentBus = bus;
[self.navigationController pushViewController:viewController animated:YES];
[viewController release];
}
}
분석기 툴 라인에서 91.4 %를 얻는다 [self.navigationController과 pushViewController : 애니메이션의 ViewController : YES];
누구에게 무슨 문제가 있는지 알고 있나요?
5.0보다 낮은 앱을 타겟팅하므로 ARC를 사용할 수 없습니까? – dorin
@Dorin ARC는 iOS 4.0 이상에서 사용할 수 있습니다. 이 기능을 사용하려면 최신 Xcode 버전 중 하나를 사용해야합니다. –