【问题标题】:iOS 8: -[CLLocationManager requestWhenInUseAuthorization] not calling delegateiOS 8:-[CLLocationManager requestWhenInUseAuthorization] 不调用委托
【发布时间】:2014-09-20 06:57:53
【问题描述】:

我在主线程上调用 -[CLLocationManager requestWhenInUseAuthorization]。我已经设置了我的委托,并在 info.plist 中为 NSLocationWhenInUseUsageDescription 键提供了一个值。

询问用户访问权限的对话框正确显示,但是当用户点击“允许”或“禁止”时,委托方法 -[locationManager:didChangeAuthorizationStatus:] 没有被调用。

我在 iOS 8 上,所以它可能是一个错误……但它似乎是一个太大的错误,无法被忽视。有什么想法吗?

谢谢。

【问题讨论】:

  • 我发现只有在最近第一次安装该应用程序时才会出现此问题。如果您删除该应用程序然后重新安装它,则不会发生此问题。在模拟器上很容易重现这一点。单击模拟器菜单中的“重置内容和设置”,然后安装您的应用程序。就会出现问题。然后删除该应用程序并重新安装。不会出现问题。我还没有找到解决办法。

标签: cllocationmanager ios8


【解决方案1】:

确保您对 CLLocationManager 对象具有强引用。我遇到了类似的问题,但我意识到我从未为它创建过属性。

【讨论】:

  • 我不知道这是我的问题,但确实是需要注意的问题。
  • 感谢您的提示,我正在执行此操作 CLLocationManager* lm = [[CLLocationManager alloc] init]; [lm requestWhenInUseAuthorization];并让对话框再次闪烁并消失
【解决方案2】:

代码现在可以工作了……我暂时假设它是 iOS 8 测试版中的一个错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-05-07
    • 2015-02-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-12
    • 2011-11-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多