0

我需要从这个方法返回经度纬度。这是来自locationManager代码。当我记录经纬度时,它们给出了正确的值。

我一直无法做的是让你从这个方法中导出/返回变量。我应该如何去改变它?

- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation {

    int degrees = newLocation.coordinate.latitude;
    double decimal = fabs(newLocation.coordinate.latitude - degrees);
    int minutes = decimal * 60;
    double seconds = decimal * 3600 - minutes * 60;
    self.lat = [NSString stringWithFormat:@"%d° %d' %1.4f\"", degrees, minutes, seconds];
    NSLog(@"Current Latitude : %@",self.lat);

    degrees = newLocation.coordinate.longitude;
    decimal = fabs(newLocation.coordinate.longitude - degrees);
    minutes = decimal * 60;
    seconds = decimal * 3600 - minutes * 60;

    self.longt = [NSString stringWithFormat:@"%d° %d' %1.4f\"", degrees, minutes, seconds];
    NSLog(@"Current Longitude : %@",self.longt);
    [manager stopUpdatingLocation];
}
4

1 回答 1

1

您不需要从该方法返回位置,因为您不会自己调用该方法——位置管理器将调用该方法为您提供更新的位置。您应该做的是存储新位置,以便您的代码以后可以使用它。通常,这只是意味着更新您的实例变量,但是您可以对位置做任何您想做的事情——更新您的数据模型,将其写入文本文件等。将其存储在 ivars 中可以方便您随时访问该位置在您的代码中需要它。

于 2013-08-20T12:31:32.670 回答