次のメソッド呼び出しで等号の後に (MKPinAnnotationView *) が必要な理由を理解しようとしています。
このメソッドの定義は、MKMapView.h ヘッダーにあります。
/ Used by the delegate to acquire an already allocated annotation view, in lieu of allocating a new one.
- (MKAnnotationView *)dequeueReusableAnnotationViewWithIdentifier:(NSString *)identifier;
このメソッドのサンプル呼び出しを見ると、次の構文が表示されます。
MKPinAnnotationView *view = (MKPinAnnotationView*)[mapView dequeueReusableAnnotationViewWithIdentifier:kPinIdentifier];
メソッドが MKAnnotationView オブジェクトを返す場合。次のメソッド呼び出しを記述できないのはなぜですか。
MKPinAnnotationView *view = [mapView dequeueReusableAnnotationViewWithIdentifier:kPinIdentifier];
等号の左側に MKAnnotationView オブジェクトがある場合、等号の後とメソッド呼び出しの前の (MKPinAnnotationView*) の目的は何ですか?
また、等号の後に (MKPinAnnotationView*) ピースの使用を強制しているメソッドの定義は何ですか?
幸いなことに、コードは特別な構文で動作しますが、このタイプのメソッド呼び出しを見たことがないので、メソッド呼び出しと初期化子に関して何か他のものが欠けているのではないかと頭を悩ませています。