CLLocationManager延迟更新失败

时间:2015-01-27 06:56:55

标签: cllocationmanager

我有一个在前台运行良好的应用程序。我想让它能够在后台跟踪位置。但是,它不会推迟更新。

这里的长度是由于试图回答类似帖子中提出的问题:

我已经获得了pinfo设置,允许应用程序进入后台而不会崩溃。

在进入后台之前,我打电话给:

    [locationManager allowDeferredLocationUpdatesUntilTraveled:CLLocationDistanceMax timeout:CLTimeIntervalMax] ;

但是这个委托函数会被立即调用:

- (void)locationManager:(CLLocationManager *)manager
 didFinishDeferredUpdatesWithError:(NSError *)error
 {
  if (error)
   {
     NSLog (@"Error deferring updates: %@", error) ;
  }
  return ;
 }

显示:

  

错误Domain = kCLErrorDomain Code = 14“无法完成操作。(kCLErrorDomain错误14。)”

然后使用

继续进行位置处理
 - (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations

在后台调整每个位置时调用。

我也看到这条消息被写入日志,但不知道它来自哪里:

  

快照未呈现的视图会导致空快照。确保在屏幕更新后快照或快照之前,您的视图至少呈现过一次。

我没有在应用中明确拍摄任何快照。

(测试设备是iPad Air II,IOS 6)。

虽然我无法推迟更改位置?

1 个答案:

答案 0 :(得分:0)

我认为你的CLLocationManager对象是本地对象,它会在超出范围后立即被释放。 您可以尝试将其设置为类属性,然后请求授权和确定位置等异步进程将有机会运行。