gpt4 book ai didi

ios - 获取有关 didUpdateLocations 和 didUpdateToLocation 的位置从不调用 ios 5.1 和 ios6

转载 作者:行者123 更新时间:2023-11-29 13:02:03 25 4
gpt4 key购买 nike

我有一个关于位置的问题。

我需要在 iOS 5.1 和 iOS 6 上获取经纬度位置。

但是我在 didUpdateLocations 和 didUpdateToLocation 函数中写了 NSLog。

我没有在控制台看到日志显示。

我正在使用模拟设置位置。我测试纬度值为25.317973,经度值为121.538161(D1)。

那我测试值是( 25.917973, 121.538161 ) (D2)。

D1和D2距离超过10米;

但我从未在控制台中看到日志显示。

我在下面附上我的代码:

我的 .h 文件

#mport <GoogleMaps/GoogleMaps.h>
#import <CoreLocation/CoreLocation.h>
#import <Corelocation/CLLocationManagerDelegate.h>

@interface LocationMapViewController : AbstractViewController< CLLocationManagerDelegate, GMSMapViewDelegate >
@property (strong, nonatomic) CLLocationManager *locationManager;
@end

我的 .m 文件

   - (void)viewDidLoad
{
[super viewDidLoad];

if( _locationManager == nil )
{
_locationManager = [CLLocationManager new];
_locationManager.delegate = self;

_locationManager.desiredAccuracy = kCLLocationAccuracyBest;
_locationManager.distanceFilter = 10.0f;
[_locationManager startUpdatingHeading];

}

-(void) locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations
{
NSLog(@"==latitude %f, longitude %f", [[locations objectAtIndex:([locations count]-1)] coordinate].latitude , [[locations objectAtIndex:([locations count]-1)] coordinate].longitude);
}

-(void) locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation
{
NSLog(@"====latitude %f, longitude %f", newLocation.coordinate.latitude, newLocation.coordinate.longitude);
}

有人知道我的代码有什么问题吗?

非常感谢

最佳答案

您不必在您的 .h 和 AFAIK 中导入 CLLocationManagerDelegate 我认为 CoreLocation 也没有使用 Google map ,所以除非您使用 Google map API 或其他东西应该也不需要导入 GoogleMaps。

尝试在您的方法中使用它:

- (void)viewDidLoad
{
[super viewDidLoad];

if( _locationManager == nil )
{
_locationManager = [[CLLocationManager alloc] init];
_locationManager.delegate = self;
_locationManager.desiredAccuracy = kCLLocationAccuracyBest;

[_locationManager startUpdatingLocation];
}
}

编辑:

我意识到您正在尝试获得距离的差异。所以也许只是改变你的

_locationManager = [CLLocationManager new];

_locationManager = [[CLLocationManager alloc] init];

这应该可以解决问题。

根据您的评论,我又进行了一些检查,发现您正在使用 startUpdatingHeading 方法调用,因此您应该使用 didUpdateHeading 委托(delegate)方法。这是来自 Apple CLLocationManager 引用:

Heading events are delivered to the locationManager:didUpdateHeading: method of your delegate. If there is an error, the location manager calls the locationManager:didFailWithError: method of your delegate instead.

希望对您有所帮助! :)

关于ios - 获取有关 didUpdateLocations 和 didUpdateToLocation 的位置从不调用 ios 5.1 和 ios6,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19537600/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com