我试图在iOS7中使用此技术每隔x秒获取一个位置-定期更新iOS背景位置。
在我的didUpdateLocations中:
- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations
{
[self.locationManager setDesiredAccuracy:kCLLocationAccuracyKilometer];
[self.locationManager setDistanceFilter:9999];
}
当我运行此程序时,似乎出现了循环。setDesiredAccuracy:-我认为这会强制自己进行更改。这就是为什么我要循环播放,这是对的吗?当我注释掉这些内容时,它的行为也与我期望的一样。无论如何,当我设置这些时,有没有停止它的位置?
听起来您应该为“ setDesiredAccuracy
”的频率设置某种时间/日期戳。如果您拨打过一次电话,则在一定时间内不要再次拨打。
就像是:
- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations
{
NSTimeInterval secondsSinceLastResetOfAccuracy = [lastResetTime timeIntervalSinceNow];
if(secondsSinceLastResetOfAccuracy > 60 * 60) // one hour
{
[self.locationManager setDesiredAccuracy:kCLLocationAccuracyKilometer];
[self.locationManager setDistanceFilter:9999];
lastResetTime = [NSDate date]; // new "time stamp"
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句