私はそれをプロトコル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
オンザフライでの作成が機能しないのはなぜですか?