在我现在已经精疲力尽的事情上挣扎。这里有两个部分:
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];
}
}
有什么想法吗?谢谢大家!
最佳答案
这一行:
if (location.longitude = (double) -73.2125)
进行赋值 (=
),而不是比较 (==
)。
由于分配总是成功,因此它总是转到 removeAnnotation
部分。
但是,我不建议使用 ==
比较 double (或任何 float )。
我建议检查这两个数字是否在彼此之间的一小段距离内。
请参阅this answer举个例子。
关于iphone - mapView "addAnnotation:addAnnotation"未根据需要使用 IF/ELSE 语句删除引脚,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12410069/