-5
CLLocation *userLoc = mapView.userLocation.location;
    CLLocationCoordinate2D userCoordinate = userLoc.coordinate;

    NSLog(@"user latitude = %f",userCoordinate.latitude);
    NSLog(@"user longitude = %f",userCoordinate.longitude);

    mapView.delegate=self;

上記のコードは全体として何をしますか? 私は専門用語を理解しているので、行ごとの説明は必要ありません..このコードが何に使用されているのかわかりません..

4

1 に答える 1

1

まず、これらのタイプの質問に答えるために Apple ドキュメントを掘り下げる方法を学ぶ必要があります。私は通常、XXX クラス リファレンスまたは XXX 開発者ガイドを検索することから始めます。

mapview は MKMapView オブジェクトです。ここを参照してください: http://developer.apple.com/library/ios/#DOCUMENTATION/MapKit/Reference/MKMapView_Class/MKMapView/MKMapView.html

userLocation は、ユーザーの現在の場所を返します。それらのドキュメントから:

userLocation
The annotation object representing the user’s current location. (read-only)

@property(nonatomic, readonly) MKUserLocation *userLocation

次に、コードはユーザーの位置の座標を取得し、緯度と経度をログアウトします。

最後に、デリゲートを self に設定すると、このクラスが MKMapViewDelegate プロトコルのコールバックを実装することになります。それらのドキュメントから:

delegate
The receiver’s delegate.

@property(nonatomic, assign) id<MKMapViewDelegate> delegate
Discussion
A map view sends messages to its delegate regarding the loading of map data and changes in     the portion of the map being displayed. The delegate also manages the annotation views used to highlight points of interest on the map.

The delegate should implement the methods of the MKMapViewDelegate protocol.

デリゲートとは何かについては、こちらを参照してください: デリゲートは xcode ios プロジェクトで正確に何をしますか?

そのため、コールバックを使用すると、マップ ビューのパイプライン実行にコードを挿入したり、viewForAnnotation などのデータを提供したりできます。

MKMapVeiwDelegate のドキュメント (mapview のコールバック) は次のとおりです。

http://developer.apple.com/library/ios/#DOCUMENTATION/MapKit/Reference/MKMapViewDelegate_Protocol/MKMapViewDelegate/MKMapViewDelegate.html#//apple_ref/occ/intf/MKMapViewDelegate

于 2012-09-03T22:28:50.267 に答える