1

我有一个检查位置的应用程序。它要求用户使用位置,如果用户在菜单上说不,那么当我加载地图视图时就会出现问题。

一旦我选择了 mapView,它就会再次询问用户位置。如果用户再次拒绝,我的控制台会继续显示错误/警告以及来自我的位置管理器类的“didFailWithError”的 NSLog。

如果用户已经拒绝,有没有办法停止 LocationManage:didFailWithErrors?如果 Log 文件被我的 LocationManager 填满,我认为 Apple 不会接受我的应用程序

这是在控制台中重复的示例

ERROR,Time,290362745.002,Function,"void CLClientHandleDaemonDataRegistration(__CLClient*, const CLDaemonCommToClientRegistration*, const __CFDictionary*)",server did not accept client registration 1
WARNING,Time,290362745.005,Function,"void CLClientHandleDaemonInvalidation(__CFMessagePort*, void*)",client 1035.0 has been disconnected from daemon
2010-03-15 12:19:05.002 SAQ[1035:207] LocationManager Error Denied by user
4

2 回答 2

4

方法文档-didFailWithError:说:

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

因此,在收到此错误后,您应该向位置管理员发送消息以停止更新位置:

[manager stopUpdatingLocation];

如果您使用的是 MKMapView,我认为将其showsUserLocation属性设置为 NO 应该可以解决问题。

于 2010-03-15T16:55:57.520 回答
0

您有责任检查错误代码并在错误代码为 时停止更新位置kCLErrorDenied

于 2010-03-15T16:56:27.987 回答