ios - CLLocationManager 一直不工作(iOS 8,Xcode 6)

标签 ios objective-c xcode cllocationmanager cllocation

基本上委托(delegate)方法的一半时间

- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations;

根本没有被调用。但另一半时间它工作得很好!我发现它通常发生在我关闭并退出 Xcode 后第一次启动它时,但在那之后或之后运行几次它似乎工作正常。我不能 100% 确定这只是 Xcode 问题还是什么,我很快就会获得开发者许可证,所以我会看看它是否能在实际设备上正常工作。

从 viewDidAppear 开始(也在 viewDidLoad 中尝试过,没有区别),我运行一个方法来初始化我的 locationManager 东西:

locationManager = [[CLLocationManager alloc]init];

[locationManager setDelegate:self];
locationManager.distanceFilter = 20.0f;
locationManager.desiredAccuracy = kCLLocationAccuracyBest;
locationManager.pausesLocationUpdatesAutomatically = NO;

if ([locationManager respondsToSelector:@selector(requestAlwaysAuthorization)])
    [locationManager requestAlwaysAuthorization];

[locationManager startUpdatingLocation];

有时这行得通,有时行不通。我什至设置了一个计时器,每隔几秒就重新运行一次,但这是行不通的。

还有什么我应该做的吗?这个问题有答案吗?

谢谢。

最佳答案

- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations;  

只有在新位置可用时才会调用此委托(delegate)方法。有时 gps 无法获得卫星信号,因此无法获得位置。所以在这些情况下,不会触发上述方法。由于您是在模拟器中进行测试,因此您应该更改或设置位置。我认为它在实际设备上运行良好。

关于ios - CLLocationManager 一直不工作(iOS 8,Xcode 6),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26081646/

相关文章:

ios - didDeSelectRowAtIndexPath 没有在 objective-c 中被调用

ios - 尝试展开 segue 时出现错误 UIAlert

javascript - 通过 php 或 javascript 检索 iPad/iPhone 序列号

ios - AFNetworking 中的错误响应解析

c - 使用未声明的标识符 'arr'

ios - 让 UIView 传递触摸事件?

ios - 通过 FCM 消息控制台在后台向我的 iOS 应用程序发送静默通知

ios - 使用参数生成 NSString 时在 Release模式下崩溃

objective-c - 在 OS X 中使用 Storyboard时如何为 NSView 创建背景

iphone - NS文件管理器 : hide a folder?