使用Swift的Google Maps SDK,myLocation可以为零

时间:2015-08-10 14:17:32

标签: ios swift google-maps

我正在使用适用于iOS的Google Maps SDK,并希望了解用户的当前位置。根据文档,如果没有可用的位置,myLocation上的GMSMapView属性将返回零值:

  

如果启用了“我的位置”,则显示用户位置点的位置   被画。如果已禁用,或者已启用但没有位置数据   可用,这将是零。

然而,当使用Swift时,如果字段被声明为非零,则无法检查nil。当然,如果该字段在运行时为零,则表示应用程序将崩溃。

Google Maps SDK in XCode

有谁知道怎么解决这个问题?我想知道位置是否为零,如果不是,请使用我的代码中的值。

2 个答案:

答案 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 {
    ...
}