当前位置靠近引脚位置时显示警报视图

时间:2013-04-11 20:57:04

标签: iphone loops annotations location mapkit

我是用户当前的loaction和注释引脚位置。 当用户点击按钮时,应用程序开始计算用户当前位置和引脚位置之间的距离。 这是我的代码:

- (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);

}

问题是,当我点击此按钮(完成)时,它似乎进入无限循环,应用程序停止工作。

1 个答案:

答案 0 :(得分:0)

您应该使用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];
   }

}

我想你会想要在用户的当前位置发生变化后重新调用此方法。