gpt4 book ai didi

ios - Swift 自定义 map 调出错误

转载 作者:行者123 更新时间:2023-11-30 12:02:06 24 4
gpt4 key购买 nike

我之前曾使用过自定义 map 标注,并且已经让它们发挥作用。太糟糕了,这不是那些情况,因为我一直试图找出为什么我不断收到此错误:“无法将‘NSKVONotifying_MKPointAnnotation’(0x1c0115960)类型的值转换为‘ShopPeer.CustomBusinessPoint’(0x101159c68)。”我在“let customAnnotation = view.annotation as!CustomBusinessPoint”行上收到此错误。我使用本教程作为示例:http://sweettutos.com/2016/03/16/how-to-completely-customise-your-map-annotations-callout-views/ ...另外,在下图中的编译器中检查一下,看看出现了多少 View ...不知道为什么有这么多。

 func mapView(_ mapView: MKMapView, viewFor annotation: MKAnnotation) -> MKAnnotationView? {
guard !(annotation is MKUserLocation) else { return nil }
let reuseId = "pin"
if let pinView = mapView.dequeueReusableAnnotationView(withIdentifier: reuseId) as? CustomBusinessCallOutAnnotatiion {
return pinView
} else {
let pinView = MKPinAnnotationView(annotation: annotation, reuseIdentifier: reuseId)
pinView.pinTintColor = UIColor.red
pinView.canShowCallout = false
//pinView.rightCalloutAccessoryView = UIButton(type: UIButtonType.infoLight)

return pinView
}
}

func mapView(_ mapView: MKMapView, didSelect view: MKAnnotationView) {

if view.annotation is MKUserLocation { return }

let customAnnotation = view.annotation as! CustomBusinessPoint
let views = Bundle.main.loadNibNamed("CustomBusinessCallOut", owner: nil, options: nil)
let calloutView = views?[0] as! CustomBusinessCallOut


calloutView.businessName.text = customAnnotation.businessName


calloutView.center = CGPoint(x: view.bounds.size.width / 2, y: -calloutView.bounds.size.height * -0.0001)
view.addSubview(calloutView)
mapView.setCenter((view.annotation?.coordinate)!, animated: true)
}

enter image description here

最佳答案

错误很明显你的某些内容与类型不匹配。例如, View 不是自定义的,或者您没有覆盖自定义类中的 .annotation 字段。您需要寻找您的类,以确保 View 是您的父类(super class)。调试 View 是否是自定义的。最后,阅读您正在关注的文章下的评论 - 将会有更多的人成为您的具体问题的可能支持者

关于ios - Swift 自定义 map 调出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47086015/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com