当前位置靠近销位置时显示警报视图
问题描述:
我有用户当前的位置和注释位置。 当用户点击一个按钮时,应用程序开始计算用户当前位置和引脚位置之间的距离。 这是我的代码:当前位置靠近销位置时显示警报视图
- (IBAction)done:(id)sender {
[Locate startUpdatingLocation];
CLLocation *current;
CLLocation *pin;
do{
current=[[CLLocation alloc]initWithLatitude:Locate.location.coordinate.latitude longitude:Locate.location.coordinate.longitude];
pin=[[CLLocation alloc]initWithLatitude:arrived.latitude longitude:arrived.longitude];
}while([current distanceFromLocation:pin]>1000);
}
的问题是,当我点击这个按钮(完成),似乎进入一个无限循环和应用程序停止工作。
答
您应该使用if语句,而不是for循环。该循环将被执行,直到用户在该引脚的1000米内。
- (IBAction)done:(id)sender {
[Locate startUpdatingLocation];
CLLocation *current;
CLLocation *pin;
if ([current distanceFromLocation:pin] > 1000) {
current = [[CLLocation alloc]initWithLatitude:Locate.location.coordinate.latitude longitude:Locate.location.coordinate.longitude];
pin = [[CLLocation alloc]initWithLatitude:arrived.latitude longitude:arrived.longitude];
}
}
我想象一下,当用户的当前位置发生变化时,您想要重新调用此方法。