【发布时间】:2014-11-22 18:26:42
【问题描述】:
委托方法的时间基本上是一半
- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations;
根本没有被调用。但另一半时间它工作得很好!我发现它通常发生在我关闭并退出 Xcode 后第一次启动 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];
有时这有效,有时无效。我什至做了一个计时器,每隔几秒就重新运行一次,但这是行不通的。
还有什么我应该做的吗?这个问题有答案吗?
谢谢。
【问题讨论】:
-
位置管理器实际上只是为了在设备上工作。在模拟器中,你试过设置位置吗?
-
你说的一半时间是什么意思?
didUpdateLocations在操作系统需要提供位置更新时调用。有时会,有时(不太常见)不会。 -
几件事,你有
NSLocationAlwaysUsageDescription添加到你的应用程序info.plist文件?二 你在模拟器中设置了位置吗? (调试->位置) -
是的,我有。就像我说的,它在大约一半的时间里完美无缺。位置已设置,事物已添加到 plist,以及所有内容。我发现当我第一次启动 Xcode 并运行应用程序时,它根本不运行委托方法,即使我更改了位置等。其他时候,它可以正常工作并且在应用程序运行时正确运行开始以及何时更改位置。我意识到没什么可做的,但我想知道这是否是已知的事情或其他事情。不过谢谢
-
我也有同样的问题。对我来说,它一直在使用 iPhone 6 模拟器,但 iPhone 5 没有一半时间工作。我也在调查
标签: ios objective-c xcode cllocationmanager cllocation