स्थान सेवाएं सक्षम कक्षा विधि केवल स्थान सेवाओं के लिए वैश्विक सेटिंग का परीक्षण करती है। AFAIK, यह जांचने का कोई तरीका नहीं है कि आपके ऐप को स्पष्ट रूप से अस्वीकार कर दिया गया है या नहीं। आपको स्थान अनुरोध विफल होने की प्रतीक्षा करनी होगी और CLLocationManagerDelegate विधि स्थान प्रबंधक का उपयोग करें: didFailWithError: जो भी आपको चाहिए, करने के लिए। उदा .:
- (void)locationManager: (CLLocationManager *)manager
didFailWithError: (NSError *)error {
NSString *errorString;
[manager stopUpdatingLocation];
NSLog(@"Error: %@",[error localizedDescription]);
switch([error code]) {
case kCLErrorDenied:
//Access denied by user
errorString = @"Access to Location Services denied by user";
//Do something...
break;
case kCLErrorLocationUnknown:
//Probably temporary...
errorString = @"Location data unavailable";
//Do something else...
break;
default:
errorString = @"An unknown error has occurred";
break;
}
}
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Error" message:errorString delegate:self cancelButtonTitle:@"Ok" otherButtonTitles:nil, nil];
[alert show];
[alert release];
}
अधिक विकल्पों के लिए CLLocationManager class reference में CLError स्थिरांक पर दस्तावेज़ देखें।
यह समझ में आता है कि यह हमेशा सच क्यों होता है। धन्यवाद! – Adam
@ दान, यदि स्थान सेवाएं गलत है, तो मैंने लंबे समय तक इंतजार किया है, लेकिन प्रतिनिधि (स्थान प्रबंधक: didFailWithError :) विधि नहीं कहा जाता है। क्या कारण है?? – Apple