我有一个带有注释作为属性的类
var user1 = UserClass()
然后我做了这个类的几个实例,如:
@objc(mapView:didSelectAnnotationView:) func mapView(_ mapView: MKMapView, didSelect view: MKAnnotationView) {
if let annot = view.annotation as? MKPointAnnotation {
let user = // Need the user instance here to acces user id etc
}
}
然后在地图上定义,创建和添加每个用户的注释。
稍后在代码中用户点击注释,我需要对相应用户实例的引用。我怎么得到它?
for (int i = 0; i < pairedSystems.size(); i++) {
System sys = (System) pairedSystems.get(i);
if (sys.id() == system.id()) {
sys.addPower((int) pairedId.get(i), amount);
}
}
答案 0 :(得分:0)
您可能在使用注释填充地图视图的类中的数组中拥有所有用户。如果没有,请将所有用户存储在一个数组中,然后:
@objc(mapView:didSelectAnnotationView:) func mapView(_ mapView: MKMapView, didSelect view: MKAnnotationView) {
if let annot = view.annotation as? MKPointAnnotation {
let user = usersArray.first(where:{$0.annot == annot})
}
}