我有MyClass
符合MKAnnotation
协议的。根据文档,需要类来实现coordinate
应该返回CLLocationCoordinate2D
实例的属性。我的第一个实现是这样的:
-(CLLocationCoordinate2D)coordinate{
return MKCoordinateForMapPoint(MKMapPointMake(self.details.latitude, self.details.longitude));
}
但这没有用:每当我调用[self.mapView addAnnotation:instanceOfMyClass];
它时,它根本就没有添加到 ! 的annotations
数组中mapView
。
_coordinate
因此,对我来说,解决方案是在其中定义一个实例变量MyClass
并实现协议一致性,如下所示:
-(CLLocationCoordinate2D)coordinate
{
_coordinate.latitude = self.details.latitude;
_coordinate.longitude = self.details.longitude;
return _coordinate;
}
现在起作用了。所以,这里的问题是为什么需要一个实例变量并且动态创建CLLocationCoordinate2D
不起作用?