我正在使用适用于iOS的Google Maps SDK,并希望了解用户的当前位置。根据文档,如果没有可用的位置,myLocation上的GMSMapView属性将返回零值:
如果启用了“我的位置”,则显示用户位置点的位置 被画。如果已禁用,或者已启用但没有位置数据 可用,这将是零。
然而,当使用Swift时,如果字段被声明为非零,则无法检查nil。当然,如果该字段在运行时为零,则表示应用程序将崩溃。
有谁知道怎么解决这个问题?我想知道位置是否为零,如果不是,请使用我的代码中的值。
答案 0 :(得分:1)
无法检查是否
这不正确。 myLocation
是一个隐式展开的可选,可以将其与nil
进行比较,例如
let location = self.mapView.myLocation
if location != nil {
// Use location ...
}
答案 1 :(得分:0)
看起来您可以使用键值编码来完成此操作。
// Will *not* work as 'myLocation' declared as non-nil
if let location = self.mapView.myLocation {
...
}
// Works using KVO.
if let location = self.MapView.valueForKeyPath("myLocation") as? CLLocation {
...
}