2011-08-03 12 views
0

私はそれが欲しいのとまったく同じようにエラーが強すぎると思いますが、警告メッセージが表示されています。私は、TabViewControllerをTabBarControllerに追加しています。ユーザーがそのタブをクリックすると、マップビューが表示され、ユーザーがズームインされます。私はxibを作りました。私が行った唯一の編集は、MKMapViewをドラッグしてコンセントとデリゲートを接続することでした。それ以外は、これはすべての実装コードです:MKMapViewのエラー

- (void)viewDidLoad 
{ 

    [super viewDidLoad]; 

    [mapView setShowsUserLocation:YES]; 

} 

- (void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation { 

    CLLocationCoordinate2D loc = [userLocation coordinate]; 
    MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance(loc, 250, 250); 
    [mapView setRegion:region animated:YES]; 

} 

問題は、私は、のMapView「のローカル宣言 『を言う最後の行に黄色の警告エラーを取得していますということです』インスタンス変数を隠します。」

しかし、私はアプリを実行すると、正しく動作しているようです。このエラーは何を指しているのでしょうか?

+0

の可能性の重複:http://stackoverflow.com/questions/5626885/warning-local-declaration-of-mapview-hides-instance-variable – DucatiNerd

答えて

1

MKMapViewオブジェクトをmapViewと宣言したことが原因です。メソッドの宣言を見てください:

- (void)mapView:(MKMapView *)mapView

それはあなた自身の変数と同じ名前を使用しています。これは、コンパイラが問題に遭遇した場所です。私はこれを数回自分でしていましたが、私の解決策は変数名を変更することでした(例えばworldViewを使うことができました)。

自分でも解決できると思います。他の言語と同様に、this.variableNameを使用します。self.variableNameを使用して、これが「あなたの」変数であることを示すことができます。それが理にかなっていれば?

私は自分のメソッドを宣言すると、私は通常、次のように実行します。

- (void)feedDog:(Dog *)aDog; 

、その後、私の変数は、混乱を避けるためにDog呼び出されます。

私は何をしていますか。誰かがこれに追加するものがあれば、気軽に。私はまだこれにかなり新しいですが、私はこのエラーに数回遭遇しました。

+1

コンパイラが問題を持っていない、それはしようとしていますあなたが望んでいない可能性があるmapViewが表示されていることを伝えることで、コーディングエラーを回避するのに役立ちます。おそらくmapViewインスタンス変数を参照することを意図していましたが、mapViewパラメータがあります。 – progrmr

0
[self.mapView setRegion:region animated:YES];