mapView“addAnnotation:addAnnotation”不会根据需要使用IF / ELSE语句丢弃引脚

时间:2012-09-13 15:44:40

标签: iphone xcode mkmapview mkannotation mkannotationview

在我现在筋疲力尽的事情上苦苦挣扎。这里有两个部分:

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];
}
}

有什么想法?谢谢你们!

1 个答案:

答案 0 :(得分:1)

这一行:

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

执行作业(=),而不是比较(==)。

由于作业始终成功,因此总是转到removeAnnotation部分。


但是,我不建议使用==比较双打(或任何浮点数) 我建议检查这两个数字是否在彼此相距很小的距离内 有关示例,请参阅this answer