IOS如何获得直播的经纬度

时间:2014-07-10 16:02:54

标签: ios objective-c geolocation

我想要设备的当前纬度和经度。我的程序第一次找到设备时可以打印纬度和经度,但我无法刷新它。

-(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尝试了它,但是也没用。

我该怎么办?任何人都可以帮我解决这个问题。 谢谢你

2 个答案:

答案 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];