deferredLocationUpdatesAvailable在iOS 10中返回NO

前端之家收集整理的这篇文章主要介绍了deferredLocationUpdatesAvailable在iOS 10中返回NO前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试使用一些CoreLocation功能,我遇到了延迟位置更新的问题.

由于某些原因,当应用程序更新为iOS 10时,deferredLocationUpdatesAvailable始终返回NO.我正在测试iPhone 6s,所以我知道该设备能够使用GPS功能.

我尝试使用它来调试:

[CLLocationManager deferredLocationUpdatesAvailable]

我无法弄清楚这是iOS 10的问题,还是我的设置不正确.

在这个方法中:

- (void)locationManager:(CLLocationManager *)manager didFinishDeferredUpdatesWithError:(NSError *)error {
    self.deferringUpdates = NO;
    NSLog(@"DEFERRING Error: [%@]",error);
    if (error) {
        [[LocationManagerClient alertWithMessage:error.localizedDescription andTitle:error.domain] show];
    }
}

我最终记录了这个错误

DEFERRING Error: [Error Domain=kCLErrorDomain Code=11 "(null)"]

有没有其他人遇到iOS 10的这个问题或有任何想法发生了什么?

编辑:
这就是我设置距离滤镜的方法

- (void)configureForApplicationWillResignActive {
    [_locationManager setAllowsBackgroundLocationUpdates:YES];
    [_locationManager setPausesLocationUpdatesAutomatically:NO];
    [_locationManager setDesiredAccuracy:kCLLocationAccuracyBest];
    [_locationManager setDistanceFilter:kCLDistanceFilterNone];   // use distance filter
    [_locationManager requestAlwaysAuthorization];
}

- (void)configureForApplicationDidBecomeActive {
    [_locationManager setAllowsBackgroundLocationUpdates:YES];
    [_locationManager setPausesLocationUpdatesAutomatically:NO];
    [_locationManager setDesiredAccuracy:kCLLocationAccuracyBest];
    [_locationManager setDistanceFilter:kCLDistanceFilterNone];   // use distance filter
    [_locationManager requestAlwaysAuthorization];
}

解决方法

我已经提交了一个雷达(28303779),其概念证明为 sample code – 也包含雷达的措辞.我也开了一个 dev forum post,看来很多工程师都面临着同样的问题. deferredLocationUpdatesAvailable()在iOS 10中也返回false.似乎苹果故意关闭了这个功能.

更新

我的错误报告已关闭,说’它按预期工作’.我想苹果公司并不打算解决这个问题,并且在没有弃用的情况下错误地将其取出.

猜你在找的iOS相关文章