2013-12-18 2 views
0

MKUserTrackingBarButtonItem을 사용하여 사용자를 추적하고 있습니다. 사용자 추적 막대 버튼을 사용할 때 줌을 설정할 수 없습니다. 그래서 나는 화면을 확대하려고 시도했다. 몇 단계를 거친 후에 응용 프로그램이 충돌합니다. 나는 근처 좌표를 가지고 있으며이 좌표를 사용하여 좌표를 기준으로 사용자를 추적합니다. 왜 앱이 충돌하고 있습니다. 더 좋은 방법이 있나요? 어떤 도움이라도 대단히 감사합니다. 다음은 내 코드입니다 : -확대시 MKUserTrackingBarButtonItem이 충돌 함

-(void) viewWillAppear:(BOOL)animated{ 
[super viewWillAppear:animated]; 

self.mapView.delegate = self; 


_coordinate1.latitude = 29.9431438; 
_coordinate1.longitude = -95.5170326; 

self.mapView.showsUserLocation = YES; } 


-(void) viewDidAppear:(BOOL)animated{ 
[super viewDidAppear:animated]; 


    MKCoordinateRegion region = [self regionFromLocations:self.currentLoc]; 

[self displayPoints]; 

MKCoordinateRegion adjustRegion = [self.mapView regionThatFits:region]; 

self.mapView.autoresizingMask = (UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight); 
[self.mapView setRegion:adjustRegion animated:YES]; } 




- (void)viewDidLoad { 

[super viewDidLoad]; 
MKUserTrackingBarButtonItem *locateMeButton = [[MKUserTrackingBarButtonItem alloc] initWithMapView:self.mapView]; 



NSArray *toolbarItems = [NSArray arrayWithObjects: locateMeButton, 
         nil]; 
self.toolBar.items = toolbarItems; } 





- (void)viewWillDisappear:(BOOL)animated { 

NSLog(@"viewwillDisapear"); 

[self.mapView setUserTrackingMode:MKUserTrackingModeNone]; 

[super viewWillDisappear:animated];} 


-(void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation { 
// getting current location 
self.currentLoc = userLocation.location.coordinate; 

NSLog(@"loc- %f %f", self.currentLoc.longitude, self.currentLoc.latitude); } 
+0

을 오류 메시지 란 무엇입니까? – Anna

+0

놀랍게도 오류 메시지가 없습니다. 내가 디버그 컨트롤을 main.h에 간다 @autoreleasepool {...} 루프에 거기에 머물러 라. – user3117208

+0

충돌을 일으키는 라인과 그 이유를 알기 전까지는 NSLogs, 중단 점, 코드별로 단계별 실행 등의 디버깅을해야합니다. 다음과 같이 시작하십시오. http://www.raywenderlich.com/10209/my-app-crashed-now-what-part-1 – Anna

답변

0

지도보기를 제거하여 문제가 때보기

사라진다 해결 - (무효) viewWillDisappear : 애니메이션 (BOOL) {

[super viewWillDisappear:animated]; 

self.mapView.delegate = nil; 
[self.mapView removeFromSuperview]; 

}