我需要从此方法返回经度和纬度。这来自locationManager
代码。当我记录lat时,它们会给出正确的值。
我无法做的是让你从这个方法中导出/返回变量。我该如何改变呢?
- (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];
}
答案 0 :(得分:1)
您不需要返回该方法的位置,因为您不打算自己调用该方法 - 位置管理器会调用该方法为您提供更新的位置。您应该做的是存储新位置,以便您的代码可以在以后使用它。通常,这只是意味着更新您的实例变量,但您可以使用该位置执行任何操作 - 更新数据模型,将其写入文本文件等。将其存储在ivars中可以随时轻松访问该位置在你的代码中需要它。