1

CLLocationManagerDelegate locationManager:didFailWithError 的文档说:

如果用户拒绝您的应用程序使用定位服务,此方法将报告 kCLErrorDenied 错误。收到此类错误后,您应该停止定位服务。

但是,如果您只是忽略该错误,则无论如何您都不会获得任何位置更新。忽略该错误还有一个好处,即如果用户转到“设置”并为您的应用启用定位服务,则下次您的应用进入前台时,定位服务更新会重新开始。

因此,我计划忽略来自 locationManager:didFailWithError 的所有错误,除非有人可以发现任何问题或认为该应用程序将被拒绝。

一个问题可能是电源使用,但我认为一旦发生错误,就不会使用额外的电源,因为我没有得到任何更新或任何东西。

我的后备方案是在我进入前台时重新启用更新。这是否更好?

4

1 回答 1

1

我直到最近才处理 kCLErrorDenied 并且对 Apple 没有任何问题。它不应该有任何问题,因为您的应用程序的行为就像没有位置服务一样。但是,您应该处理它并向用户提供一些说明以打开定位服务,尤其是在定位服务是您应用程序的主要部分的情况下。

于 2013-01-30T02:19:07.277 回答