Bha*_*lia 4 iphone cllocationmanager ios
我试图记录用户位置随着时间的推移.如果用户在移动中它工作正常并且可靠地调用委托方法didUpdateToLocation.但是如果用户是静止的并且应用程序在后台运行,那么在一段时间之后,不再调用委托方法.要重新启动它,应用程序需要被收购到前台.一旦它处于活动状态,就会再次可靠地调用委托方法.
我最初认为这可能是因为CLLocationManager对象是在ViewController中声明的,因此我将其更改为在AppDelegate中声明,但这也没有帮助.
我也尝试过distanceFilter属性无济于事.我目前正在使用View控制器中的以下代码进行设置.请注意,对象本身在AppDelegate对象中声明并初始化.
app.locationManager.delegate = self;
app.locationManager.desiredAccuracy = kCLLocationAccuracyBest;
app.locationManager.distanceFilter = kCLDistanceFilterNone;
[app.locationManager startUpdatingLocation];
Run Code Online (Sandbox Code Playgroud)
还有其他人遇到过这个问题吗?任何指针将不胜感激.我几天来一直在努力解决这个问题.
iOS 6自动引入了CLLocationManager属性pausesLocationUpdates.设置CLLocationManager时需要将其设置为NO,如下所述:http://www.stackoverflow.com/a/12781634/700769
在UpdateLocation方法中添加此代码
- (void) updateLocation{
self.locationManager = [[CLLocationManager alloc] init];
locationManager.delegate = self;
locationManager.pausesLocationUpdatesAutomatically = NO;
locationManager.desiredAccuracy = kCLLocationAccuracyBest;
if ([CLLocationManager locationServicesEnabled]) {
[locationManager startUpdatingLocation];
} else {
NSLog(@"Location services is not enabled");
}
}
Run Code Online (Sandbox Code Playgroud)
还可以编辑方案中的设置:方案/编辑方案/选项/允许位置模拟已选中,但没有设置默认位置.
| 归档时间: |
|
| 查看次数: |
5146 次 |
| 最近记录: |