我刚升级到Xcode 14.0,在iOS 16设备上运行我们的应用程序时,调用:
CLLocationManager.locationServicesEnabled()
会返回警告:
如果在主线程上调用此方法,可能会导致UI无响应。相反,考虑等待 -locationManagerDidChangeAuthorization:
回调并首先检查 authorizationStatus
.
如果必须等待失败/回调而不是直接调用 CLLocationManager.locationServicesEnabled()
方法,则我需要对我的代码进行重大更改。这似乎仅在iOS 16设备上发生。有什么建议吗?
authorizationStatus
和locationServicesEnabled()
返回的是两个完全不同的状态,对吧? - AlanSTACKlocationServicesEnabled
,而授权是获得locationServicesEnabled
状态的先决条件。 - timbre timbreCLLocationManager
实例上的authorizationStatus
。如果用户未授予权限,则状态将为“denied”。 - bugloafstatus = denied, locationServicesEnabled = false
2)如果您仅针对您的应用禁用位置服务:status = denied, locationServicesEnabled = true
3)如果您为两者都启用:status = always/while using.., locationServicesEnabled = true
- yonivav