Xcode:didUpdateLocations未调用,但位置管理器正在更新

时间:2017-02-20 11:46:05

标签: ios objective-c xcode cllocationmanager

我面临非常奇怪的问题。没有调用位置管理器委托方法,但是如果我检查_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;

        });

1 个答案:

答案 0 :(得分:0)

async块中删除您的位置管理器,因为它已经是异步。此外,如果将其保留在异步块中,则会在该线程中回调其委托。