这是错误:
*由于未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:'* -[__ NSPlaceholderArray initWithObjects:count:]:尝试从对象中插入零对象[1]' ***首先抛出调用堆栈: (0x18525ed8c 0x1844185ec 0x1851f7750 0x18512aa18 0x19621fbcc 0x1960b0e40 0x196128ee8 0x18512d3a0 0x196129ab8 0x1961f8e54 0x196075eac 0x185cab3d4 0x185207aa8 0x18520776c 0x185207010 0x185204b60 0x185124da8 0x187109020 0x18f141758 0x10430352c 0x184bb5fc0) libc ++ abi.dylib:以类型为NSException的未捕获异常终止
我遵循以下示例:
https://developer.apple.com/videos/play/wwdc2017/237/
当您放置100个标记时,此示例也崩溃了
请帮助
答案 0 :(得分:0)
在将对象添加到数组中之前添加检查。但是请发布一些代码,以便我们提供更多反馈。但是仅从您发布的内容来看,就是指向数组中插入零。
答案 1 :(得分:0)
我已经找到错误。 这是我的错误代码:
func mapView(_ mapView: MKMapView, viewFor annotation: MKAnnotation) -> MKAnnotationView? {
guard let annotation = annotation as? Cycle else { return nil }
switch annotation.type {
case .unicycle:
return UnicycleAnnotationView(annotation: annotation, reuseIdentifier: UnicycleAnnotationView.ReuseID)
case .bicycle:
return BicycleAnnotationView(annotation: annotation, reuseIdentifier: BicycleAnnotationView.ReuseID)
case .tricycle:
return TricycleAnnotationView(annotation: annotation, reuseIdentifier: TricycleAnnotationView.ReuseID)
}
///// 警卫让注解=注解为?循环其他{return nil}
任何时候都不能为空
这是很好的代码:
func mapView(_ mapView: MKMapView, viewFor annotation: MKAnnotation) -> MKAnnotationView? {
guard let annotation = annotation as? Cycle else { return ClusterAnnotationView() }
switch annotation.type {
case .unicycle:
return UnicycleAnnotationView(annotation: annotation, reuseIdentifier: UnicycleAnnotationView.ReuseID)
case .bicycle:
return BicycleAnnotationView(annotation: annotation, reuseIdentifier: BicycleAnnotationView.ReuseID)
case .tricycle:
return TricycleAnnotationView(annotation: annotation, reuseIdentifier: TricycleAnnotationView.ReuseID)
}
}