2016-03-24 2 views
0

Я создал метод, который проверяет правильность авторизации, однако помимо этого, даже если авторизация верна, это не означает, что она может получить местоположение. Я попытался проверить это в didFailWithError, но, похоже, он называется дважды, что затрудняет создание каких-либо сообщений об ошибках, почему это так?Обработка ошибок didStartUpdatingLocation

так после того, как я уже проверил разрешение я называю этот метод:

class func turnOn() { 
    if (CLLocationManager.locationServicesEnabled()){ 
     print("begin updating location") 
     self.sharedManager.locationManager.startUpdatingLocation() 
    } 
} 

, а затем я называю это, возвращающий вырубку дважды

func locationManager(manager: CLLocationManager, didFailWithError error: NSError) { 
    print(error) 
} 
+0

Что сообщение об ошибке, то (даже если в два раза)? – Larme

+0

'Ошибка домена = kCLErrorDomain Code = 0" (null) "' 'Ошибка домена = kCLErrorDomain Code = 0" (null) "' –

ответ

1

После проверки типов ошибок, как это, я написал в Obj-C, но ур вопрос в Swift

- (void)locationManager: (CLLocationManager *)manager didFailWithError: (NSError *)error 
{ 
switch([error code]) 
{ 
    case kCLErrorNetwork: 
    { 


     @"Network Error" message:@"Please check your network connection."; 


    } 
     break; 
    case kCLErrorDenied:{ 

     @"Enable Location Service" message:@"You have to enable the Location Service to use this App. To enable, please go to Settings⚙->Privacy->Location Services"; 


    } 
     break; 
    default: 
    { 

    } 
     break; 
} 
} 
0

Убедитесь, что вы позволили местоположение на ваш симулятор.

Нажмите значок симулятора и перейдите в верхнюю панель вашего mac.

Enabling location on simulator

+0

Да, я знаю, что это проблема, но я хочу проверить это, поскольку это может происходят в приложении aswell –

+0

Эта ошибка отображается только на симуляторе. Запуск приложения на реальном устройстве приведет к ошибкам с более сложными сообщениями из CoreLocation. – Raz

Смежные вопросы