-1

MapKit.h をインクルードし、使用しているオブジェクト mapView の .h ファイルでプロトタイプを宣言しました。

- (void)setCenterCoordinate:(CLLocationCoordinate2D)coordinate animated:(BOOL)animated;

これは私の.mでそれを呼び出す方法です:

setCenterCoordinate:userLocation animated:FALSE;

しかし、それはセミコロンを指し続け、「Expected ']'」と言い続けます

誰かが私が間違っていることを私に知らせることができれば、それは大歓迎です。ありがとう。

4

2 に答える 2

0

[self setCenterCoordinate:userLocation animated:NO];

Objective-Cでは、オブジェクトに動作を依頼するためにメッセージをオブジェクトに送信します。の宣言はsetCenterCoordinate:animated:、クラスがそのメッセージに応答することを宣言します。

メソッド実装内にいるときは、self常に現在のオブジェクトへのポインタです。したがって、上記のメソッドはそのメッセージを現在のオブジェクトに投稿します。

于 2012-08-05T19:49:55.337 に答える
0

MKMapView をサブクラス化しましたか? そうでない場合は、マップ ビュー オブジェクトに setCenterCoordinate を指示する必要があります。

[yourMapViewObject setCenterCoordinate:userLocation animated:FALSE];

持っている場合は、.h で setCenterCoordinate:animated: を再宣言する必要はありません。また、おそらくそれをオーバーライドするべきではありません。おそらく、.h または .m の先頭からさらにコードを追加すると、状況が明確になるでしょう。

于 2012-08-06T19:36:14.820 に答える