仅在第二次调用startUpdatingLocation后获取当前位置

Seg*_*gev 0 objective-c core-location ios

{
...
locationManager = [[CLLocationManager alloc] init];
    locationManager.delegate = self;
    locationManager.desiredAccuracy = kCLLocationAccuracyBest;
}

-(void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations {

        NSLog(@"myLocation1: %@",[locations lastObject]);
        myLocation = [locations lastObject];
        NSLog(@"myLocation2: %@",[locations lastObject]);
        [manager stopUpdatingLocation];

        [self doSomethingWithLocation];    
}
Run Code Online (Sandbox Code Playgroud)

目前我在40.000,40.000的位置.我正在关闭我的应用并将位置更改为10.000,10.000

再次进入应用程序并运行[locationManager startUpdatingLocation];我的日志将显示:

myLocation1: <+40.00000000,+40.00000000>
myLocation2: <+40.00000000,+40.00000000>
Run Code Online (Sandbox Code Playgroud)

如果我[locationManager startUpdatingLocation];再次触发,我的日志将显示:

myLocation1: <+10.00000000,+10.00000000>
myLocation2: <+10.00000000,+10.00000000>
Run Code Online (Sandbox Code Playgroud)

如何拨打didUpdateLocations一次并仍然获取当前位置?我应该使用其他代表吗?

我想我可以把它放在stopUpdatingLocation里面doSomethingWithLocation并在doSomethingWithLocation经过某种延迟之后运行,以便更新正确的位置,但我确信这不是它的意思.

谢谢

nev*_*ing 7

让位置管理器运行一段时间(例如30秒),设置一个计时器告诉它停止.位置管理器更新就像煎饼,你得到的第一个并不总是最好的.