Swift CoreLocation

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Swift CoreLocation相关的知识,希望对你有一定的参考价值。

对于以下代码行:

let currentLocationCoordinates = locationManager.requestLocation()

我收到这个警告:

常量'currentLocationCoordinates'推断为类型为'Void',这可能是意外的

在Info.plist中,我添加了以下密钥:

  • 隐私 - 位置始终和何时使用用法说明
  • 隐私 - 位置始终使用说明
  • 隐私 - 使用时的位置用法说明

'locationManager'在类属性中定义:

let locationManager = CLLocationManager()

我搜索了很多,没有找到任何解决方案。你有什么建议吗?谢谢!

答案

你需要

let locationManager = CLLocationManager()
locationManager.delegate = self

class MYVC:UIViewController,CLLocationManagerDelegate { --- }

func locationManager(_ manager: CLLocationManager, 
       didUpdateLocations locations: [CLLocation]) { --- }

这个locationManager.requestLocation()返回void而不是当前位置,它开始查询当前位置然后调用didUpdateLocations获取它所以你可能print(locations.last),你也可能只需要

隐私 - 位置始终和何时使用用法说明

因为它包含其他2个权限

以上是关于Swift CoreLocation的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 coreLocation (iOS/Swift) 读取完整地址

Swift 从 CoreData 转换为 CoreLocation - 有一些问题

如何使用 Xcode 10 而不是 swift 添加 CoreLocation 框架?

单元测试 Swift,CoreLocation 问题与 info.plist

第三天:Swift利用CoreLocation获取当前地址

CoreLocation requestWhenInUseAuthorization() 在 Swift 中不起作用