gpt4 book ai didi

iphone - 为什么 CLLocationManager 总是返回 true?

转载 作者:行者123 更新时间:2023-12-01 17:58:09 26 4
gpt4 key购买 nike

我正在使用 [CLLocationManager locationServicesEnabled]获取位置服务是否启用状态的函数。我将代码保存在 viewDidLoad方法。

if(![CLLocationManager locationServicesEnabled])
{
NSLog(@"No");
}
else
{
NSLog(@"Yes");
}

当我第一次运行这个应用程序时,它返回 Yes .为什么?它应该返回我 No .当我没有选择“允许”或“不允许”选项时就是这种情况。表示我既不允许也不不允许,但在 viewDidLoad 中我得到了 Yes .

现在我选择“不允许”并再次加载相同的 viewController .此时至少它应该返回我 No ,但我还是得到了 Yes .为什么?

CLLocationManager 有很多混淆.

有任何想法吗?

最佳答案

locationServicesEnabled返回是否在设置中启用了定位服务。如果在设置中启用,该函数返回YES每时每刻..

来自 documentation

locationServicesEnabled

Returns a Boolean value indicating whether location services are enabled on the device.

Discussion

The user can enable or disable location services from the Settings application by toggling the Location Services switch in General.

You should check the return value of this method before starting location updates to determine whether the user has location services enabled for the current device. If this method returns NO and you start location updates anyway, the Core Location framework prompts the user to confirm whether location services should be reenabled.



用户是否允许/拒绝应用程序权限(在警报 View 中)不影响此方法的返回值。

如果您想知道用户是否已授予应用程序访问位置的权限,可以使用 authorizationStatus .

关于iphone - 为什么 CLLocationManager 总是返回 true?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13969368/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com