2014-09-21 5 views
0

지도 키트를 사용하여 현재 사용자의 위치를 ​​미리 정의 된 크기로 표시하려고합니다.새 인증 프로세스를 추가 한 후 MapKit이 손상됩니다.

모든 것이 작동했지만 Xcode 6 및 iOS 8로 업데이트 한 이후로 상황이 변경되었습니다.

필자는 필요한 인증을 구현했으며 현재 앱이 다운됩니다. *** 코드는 시스템에 문제가있는 코드입니다.

여기 당신은 userLocation 값이 유효한지 확인하지 않은 Map.m

#import "MRVCMapViewController.h" 
#import <MapKit/MapKit.h> 
#import <CoreLocation/CoreLocation.h> 
@import CoreLocation; 

@interface MRVCMapViewController() 

@end 

@implementation MRVCMapViewController 
@synthesize mapView; 

- (void)viewDidLoad { 
    [super viewDidLoad]; 

    //location permission 

    self.locationManager = [[CLLocationManager alloc] init]; 
    self.locationManager.delegate = self; 


    if ([self.locationManager respondsToSelector:@selector(requestWhenInUseAuthorization)]) 
    { 
     [self.locationManager requestWhenInUseAuthorization]; 
    } 
    [self.locationManager startUpdatingLocation]; 

    //mapview settings 

    self.mapView.delegate = self; 
    self.mapView.showsUserLocation = YES; 
} 

- (void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation 
{ 
    ***MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance(userLocation.coordinate, 800, 800); 
    [self.mapView setRegion:[self.mapView regionThatFits:region] animated:YES];*** 
} 

- (void)didReceiveMemoryWarning { 
    [super didReceiveMemoryWarning]; 
    // Dispose of any resources that can be recreated. 
} 

@end 
+0

"앱이 다운됩니다"라고 말할 때마다 항상 콘솔에 표시된 정확한 충돌 메시지가 포함됩니다. – Anna

답변

1

입니다. 무엇이든 사용하기 전에 nil이 아닌지 확인해야합니다.

+0

안녕하세요 크레이그 코드에서 사용자 권한을 뺀 것이 업데이트 전에 정상적으로 작동했습니다. – Mark

+0

userLocation이 nil이 아닌지 확인해 보셨습니까? 어쩌면 시간 내에 위치를 파악할 수 있기 전이었을 것입니다. 어쩌면 iOS 8에서 위치를 파악하는 데 더 오래 걸리고 먼저 '없음'을 보냅니다. 확인하기가 매우 쉽고 충돌이 무엇인지에 대해 더 자세히 설명하지 않아도 내가 제안 할 수있는 최선의 방법입니다. – Craig