如何解决“实例成员'坐标'不能在类型'MKMapPoint'上使用”的问题,在Swift 5.0中

时间:2019-07-06 20:32:01

标签: ios swift xcode mapkit

我正在使用Apple的Footprint: Indoor Positioning with Core Location sample code来构建移动应用程序。这段代码在Swift 3.0中,我正在将其转换为Swift 5.0语法。 当我运行此Swift 3.0代码时,

coordinate = MKCoordinateForMapPoint(boundingMapRect.getCenter())

我收到此错误。

  

“ MKCoordinateForMapPoint”已替换为属性“ MKMapPoint.coordinate'”

当我将语法更改为

coordinate = MKMapPoint.coordinate (boundingMapRect.getCenter())

我收到此错误消息

  

“实例成员'coordinate'不能用于'MKMapPoint'类型”

如何使这行代码运行?

1 个答案:

答案 0 :(得分:0)

Apple在getCenter()的扩展名中定义了MKMapRect

extension MKMapRect {
    /**
        - returns: The point at the center of the rectangle.
        - parameter rect: A rectangle.
    */
    func getCenter() -> MKMapPoint {
        return MKMapPointMake(MKMapRectGetMidX(self), MKMapRectGetMidY(self))
        // now return MKMapPoint(x: self.midX, y: self.midY)
    }
}

由于getCenter()返回一个MKMapPoint,因此您只需要访问其coordinate属性:

coordinate = boundingMapRect.getCenter().coordinate