【问题标题】:iOS - What's called when location services has been accepted?iOS - 接受位置服务时调用什么?
【发布时间】:2023-03-12 00:03:01
【问题描述】:

我一直在浏览CLLocationManager 的文档,但没有看到任何地方说明用户接受定位服务时会发生什么。我正在寻找一种类似于用户拒绝使用定位服务并调用didFailWithError 时调用的方法。

我已经尝试了诸如didUpdateToLocationdidEnterRegion 等带有断点的方法,但是当我为定位服务点击“确定”时,什么都没有被调用。

谢谢,

【问题讨论】:

  • 你确定setDelegate了吗?

标签: ios xcode cllocationmanager


【解决方案1】:

你要找的是- (void)locationManager:(CLLocationManager *)manager didChangeAuthorizationStatus:(CLAuthorizationStatus)status ,它在CLLocationManagerDelegate

从那里,您可以通过检查状态是kCLAuthorizationStatusNotDeterminedkCLAuthorizationStatusRestrictedkCLAuthorizationStatusDeniedkCLAuthorizationStatusAuthorized 来确定用户的状态

但请注意,这种行为在 iOS4 和 iOS5 中会变得有些棘手。我认为在 iOS4 中,即使用户删除了应用程序,这种情况也会持续存在。

【讨论】:

  • 这仍然对我没有帮助。当我在应用程序中按“确定”以使用当前位置时,didChangeAuthoriztionStatus 不会运行。
  • 您是否将您的课程设置为符合 CLLocationManagerDelegate?当您实例化 CLLocationManager 时,您是否将您的类设置为它的委托?
  • 我没有在 .m 中设置委托,一旦我这样做了,它现在被调用了。感谢您的帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-30
  • 2017-05-29
  • 1970-01-01
  • 2014-05-12
相关资源
最近更新 更多