locationmanager didfailwitherror
-
27-09-2019 - |
سؤال
من أسبوع واحد إذا فشل تطبيق GPS الخاص بي في استرداد الإشارة (على سبيل المثال: الاختبار في منزلي) لا أتلقى أي aler. لقد قمت بإعداد إشعار الخطأ بهذه الطريقة
- (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error { NSString *errorType = (error.code == kCLErrorDenied) ?
@"Access Denied" : @"Errore sconosciuto";
UIAlertView *alert = [[UIAlertView alloc]
initWithTitle:@"Errore recuperando la Location"
message:errorType
delegate:nil
cancelButtonTitle:@"Okay"
otherButtonTitles:nil];
[alert show];
[alert release];
}
لأي سبب من الأسباب ، لا يسترجع التطبيق البيانات ولا تريني التنبيه المنبثقة؟
المحلول
لأنك تتحقق فقط من حالة تبديل حالة واحدة تحتاج إلى تنفيذها مثل
- (void)locationManager: (CLLocationManager *)manager
didFailWithError: (NSError *)error
{
[manager stopUpdatingLocation];
NSLog(@"error%@",error);
switch([error code])
{
case kCLErrorNetwork: // general, network-related error
{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Error" message:@"please check your network connection or that you are not in airplane mode" delegate:self cancelButtonTitle:@"Ok" otherButtonTitles:nil, nil];
[alert show];
[alert release];
}
break;
case kCLErrorDenied:{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Error" message:@"user has denied to use current Location " delegate:self cancelButtonTitle:@"Ok" otherButtonTitles:nil, nil];
[alert show];
[alert release];
}
break;
default:
{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Error" message:@"unknown network error" delegate:self cancelButtonTitle:@"Ok" otherButtonTitles:nil, nil];
[alert show];
[alert release];
}
break;
}
}
}
لا تزال هناك حالتان آخران kCLErrorHeadingFailure
و kCLErrorLocationUnknown
ولكن بشكل عام لن تكون هناك حاجة ...
لا تنتمي إلى StackOverflow