在实施MKMapViewDelegate
方法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的样本实施该方法,可以轻松复制。
答案 0 :(得分:1)
我遇到了同样的问题。如果实现群集并提供mapView(_:didAdd :)方法,则会崩溃-这绝对是Apply框架的错误。这个问题在iOS 11.3中很容易重现,但幸运的是在iOS 11.4中已得到纠正。