我面临非常奇怪的问题。没有调用位置管理器委托方法,但是如果我检查_locManager.location
那么它会给我更新位置。
PS:plist中提到NSLocationAlwaysUsageDescription
。
我也打电话给[self.locationManager requestAlwaysAuthorization]
。
这是请求的位置管理器设置代码。
dispatch_async(dispatch_get_main_queue(), ^{
_locManager = [[CLLocationManager alloc] init];
_locManager.delegate = self;
_locManager.distanceFilter = kCLDistanceFilterNone;
_locManager.desiredAccuracy = kCLLocationAccuracyBestForNavigation;
_locManager.activityType = CLActivityTypeFitness;
if ([_locManager respondsToSelector:@selector(requestAlwaysAuthorization)])
{
[_locManager requestAlwaysAuthorization];
}
if ([_locManager respondsToSelector:@selector(setAllowsBackgroundLocationUpdates:)])
{
self.locManager.allowsBackgroundLocationUpdates =YES;
}
_locManager.pausesLocationUpdatesAutomatically=YES;
});
答案 0 :(得分:0)
从async
块中删除您的位置管理器,因为它已经是异步。此外,如果将其保留在异步块中,则会在该线程中回调其委托。