3

实现MKMapViewDelegate's 方法时出现意外错误mapView(_:didAdd:)。它从 Xcode 9.3 开始发生,而 Xcode 9.2 没有发生。使用集群时,使用views数组时出现运行时错误。

func mapView(_ mapView: MKMapView, didAdd views: [MKAnnotationView]) {
    if let view = views.first { // Fatal error: NSArray element failed to match the Swift Array Element type
        print(type(of: view))
    }
}

据我了解,该views数组不仅仅包含MKAnnotationView预期的实例。这是views崩溃时包含的内容。

在此处输入图像描述

我看到里面有一个MKClusterAnnotation实例。如果这是真的,我会收到错误消息,但为什么会发生这种情况?难道我做错了什么?

这很容易通过在WWDC 2017 - Session 237 What's New in MapKit 中的示例上实现方法来重现。

4

1 回答 1

1

我也遇到过同样的问题。如果你实现集群并提供一个 mapView(_:didAdd:) 方法,你会崩溃——这绝对是一个 Apply 框架的错误。该问题在 iOS 11.3 中很容易重现,但幸运的是已在 iOS 11.4 中得到纠正。

于 2018-06-21T19:40:59.873 回答