ios - 尝试启动 MapKit 位置更新而不提示在 ios 9 中使用 objective-c 进行位置授权

标签 ios objective-c ios9

我试图在 iOS 8 上使用 MapKit,但我一直收到错误:

Trying to start MapKit location updates without prompting for location authorization. Must call   
-[CLLocationManager requestWhenInUseAuthorization] or -[CLLocationManager 
requestAlwaysAuthorization] first. 

在这里查找,我发现我必须在我的 plist 中实现 NSLocationWhenInUsageDescription,但没有任何反应,我仍然在控制台中收到该错误。我做错了什么?

最佳答案

1.- 将以下行添加到您的 info.plist

<key>NSLocationWhenInUseUsageDescription</key>
<string>The spirit of stack overflow is coders helping coders</string>

<key>NSLocationAlwaysUsageDescription</key>
<string>I have learned more on stack overflow than anything else</string>

2.- 位置授权提示:

 if ([self.locationManager  respondsToSelector:@selector(requestAlwaysAuthorization)]) {
               [self.locationManager requestAlwaysAuthorization];

3.-当用户接受时更新位置...

   - (void) locationManager:(CLLocationManager *)manager didChangeAuthorizationStatus:(CLAuthorizationStatus)status{

        if (status == kCLAuthorizationStatusAuthorizedAlways || status == kCLAuthorizationStatusAuthorizedWhenInUse) {
            [self.locationManager startUpdatingLocation];

    }
}

关于ios - 尝试启动 MapKit 位置更新而不提示在 ios 9 中使用 objective-c 进行位置授权,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33793062/

相关文章:

ios - 在 iOS 上通过 Swift 执行 SSH

ios - 如何使用 iOS 以编程方式生成 PDF 的缩略图?

iphone - NSManagedObject 中的可变集?

ios - iOS 9 中的省电模式——开发者需要知道什么?

ios - 启动后立即添加 View 时出现 "Application windows are expected to have a root view controller"消息,仅限 iOS 9

ios - 使用 AVAudioSession 更改音频输入源会导致崩溃

ios - SecKeyDecrypt 在不同设备上的行为不同。

iphone - 为什么 UIScrollView 在 ios 6 和 ios 7 中从顶部留出空间

ios - 使用 UIApplicationShortcutItem 启动

ios - 使用 swift 3 中的计时器自动更改 UIPageViewController 中的页面?