我正在开发一个使用位置服务的项目,我注意到我的测试设备上有一些奇怪的东西(iphone 5)。
如果我退出应用程序(使用xcode上的停止按钮或双击主页并向上滑动),我看到位置服务箭头(电池旁边)仍然打开并填写。
当我进入设置,隐私,位置服务时,我看到我的应用旁边的箭头(设置为Always)标记为紫色并填写 - 所以它肯定是由我造成的。
在我的控制器中,我有以下事件监听器
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onAppWillTerminate:) name:UIApplicationWillTerminateNotification object:nil];
和此代码
- (void)onAppWillTerminate:(NSNotification *)notification {
[self.outdoorLocation stopUpdatingLocation];
[self.outdoorLocation stopMonitoringForRegion];
}
当我退出时,代码肯定会运行(如果我添加NSLog行,我可以看到这一点)。
重新启动手机也无济于事。
有什么想法吗?
编辑:
以下是
的NSLog输出NSLog(@"outdoor before stopping is %@", self.outdoorLocation);
// issue stop
NSLog(@"outdoor after stopping is %@", self.outdoorLocation);
产生
[194:5798] outdoor before stopping is <CLLocationManager: 0x1456ccb0>
[194:5798] outdoor after stopping is <CLLocationManager: 0x1456ccb0>