我想要设备的当前纬度和经度。我的程序第一次找到设备时可以打印纬度和经度,但我无法刷新它。
-(void) locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations
{
int lastindex = [locations count]-1;
CLLocation * currentLocation = [locations objectAtIndex:lastindex];
float latitude =currentLocation.coordinate.latitude;
float longitude =currentLocation.coordinate.longitude;
NSLog(@"LAT:%f LONG:%f",latitude,longitude);
[self latitudeLabel].text = [[NSString alloc]initWithFormat:@"latitude : %@",[[NSNumber numberWithFloat:latitude] stringValue]];
[self longitudeLabel].text = [[NSString alloc]initWithFormat:@"longitude : %@",[[NSNumber numberWithFloat:longitude] stringValue]];
}
这是我尝试的但是纬度/经度永远不会更新。我用函数didUpdateHeading尝试了它,但是也没用。
我该怎么办?任何人都可以帮我解决这个问题。 谢谢你
答案 0 :(得分:1)
此方法由startUpdatingLocation
触发,我假设您正在使用它,因为它至少被调用了一次。每次位置数据更改时都会调用该方法。您的位置实际上是否足以触发它?另外,请检查distanceFilter
上的CLLocationManager
媒体资源,确保其足够低。
答案 1 :(得分:0)
确保在标题中添加以下内容:
@interface YourLocationObject : SomeObject <CLLocationManagerDelegate>
..当您创建CLLocationManager对象时,您将自己设置为委托:
CLLocationManager *locationManager = [[CLLocationManager alloc] init];
locationManager.delegate = self;
//... other customization here ...//
[locationManager startUpdatingLocations];