2012-09-13 20 views
2

掙扎這裏不好的東西我現在用盡期望的「addAnnotation addAnnotation」不會放棄針。有兩個部分的位置:MapView類:如if/else語句

1)我試圖讓去除針,如果用戶搜索相同的座標已經確定並寄託在viewDidLoad中。這部分工作。不可操作部分是#2。

2)當用戶搜索的任何其它位置,我想銷加入,即[self.mapView addAnnotation:addAnnotation];我的代碼如下。

- (IBAction) showAddress // THIS IS A BUTTON WHICH LOCATES COORDINATES 
{ 

[addressField resignFirstResponder]; 
MKCoordinateRegion region; 
MKCoordinateSpan span; 
span.latitudeDelta=0.2; 
span.longitudeDelta=0.2; 

CLLocationCoordinate2D location = [self addressLocation]; 
region.span=span; 
region.center=location; 

[mapView setRegion:region animated:TRUE]; 
[mapView regionThatFits:region]; 

if (location.longitude = (double) -73.2125) 
{ 
    addAnnotation = [[AddressAnnotation alloc]initWithCoordinate:location]; 
    [self.mapView removeAnnotation:addAnnotation]; 
} 

else 
{ 
    addAnnotation = [[AddressAnnotation alloc]initWithCoordinate:location]; 

    [self.mapView addAnnotation:addAnnotation]; 
    [addAnnotation release]; 
} 
} 

有什麼想法?多謝你們!

+0

你是說你打電話removeAnnotation實際工作?我看不到它是如何去除的,因爲你只是刪除了上面只創建了一個註釋,甚至沒有添加到地圖中。 – Craig

+0

(我不騷擾你,我發誓 - 只是在按照我們的看家別處討論的其他問題:-))。 –

回答

1

這條線:

if (location.longitude = (double) -73.2125) 

確實的分配(=),而不是比較(==)。

由於分配始終是成功的,它總是轉到removeAnnotation部分。


但是,我不推薦使用==來比較雙打(或任何浮點數)。
我建議檢查,而不是如果這兩個數字是在彼此的一些小距離內。
查看this answer的例子。

+0

很好的回答。應該被接受。 –