类型的价值' MKAnnotation'没有会员'纬度'

时间:2015-09-22 13:33:02

标签: mapkit swift2 xcode7

我将XCode更新为7和BAM ..很多错误。

其中之一是注释不再具有纬度和经度成员。这在更新之前就像一个魅力,所以我很困惑,因为这里有这个。

这里的问题是我正在查看当前地图上的所有注释,并尝试过滤已经固定在地图上的特定纬度和经度位置。

var existingPins = self.mapView.annotations.filter {m in m.latitude == getLocation.latitude!  && m.longitude == getLocation.longitude! }

我不得不认为还有另一个我不熟悉的角度来获得这些坐标。我将继续搜索,但非常感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

etPass.setCompoundDrawablesWithIntrinsicBounds(R.drawable.icon_lock_open, 0, R.drawable.icon_close, 0); 是一个协议,所以你实现该协议的任何类型都可能是提供纬度方法的。 MKAnnotation不包含MKAnnotation方法,但它确实需要latitude方法,该方法返回coordinate,其中 包括纬度成员。

如果没有看到你的代码,我猜你有两个选择:

  1. CLLocationCoordinate2D来电更改为m.latitude
  2. 使用m.coordinate.latitudeas?运算符将注释作为实际执行as!的自定义类型。

答案 1 :(得分:1)

永远不会失败,我花了好几个小时挠头,我发布了问题,几分钟后我发现了它。

“m”是一个特定的注释,我需要指定其中包含lat / lon的坐标成员。

另外,我需要将传入的值作为双精度投射,以便我可以比较它们。我不确定这在xcode 7之前是如何工作的。

这是修改后的代码。

let existingPins = self.mapView.annotations.filter {m in m.coordinate.latitude == Double(getLocation.latitude!)  && m.coordinate.longitude == Double(getLocation.longitude!) }