将旧位置与iOS6委托中的新位置进行比较

时间:2012-11-12 10:25:11

标签: ios6 cllocationmanager

在ios6中,CLLocationManager委托方法:

- (void)locationManager:(CLLocationManager *)manager 
    didUpdateToLocation:(CLLocation *)newLocation 
           fromLocation:(CLLocation *)oldLocation

已弃用,现在已被替换为:

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

要获取最后一个位置(最新位置),我们得到阵列上的最后一个对象:

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

   //[locations lastObject]
}

我使用该方法来监控位置的重大变化:

- (void)applicationDidEnterBackground:(UIApplication *)application
{
    if ([CLLocationManager significantLocationChangeMonitoringAvailable]) {

        [locationManager startMonitoringSignificantLocationChanges];

    }
}

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

       //[locations lastObject]
    }

因此,当应用程序进入后台时,我开始寻找设备位置的重大变化,但这通常需要一段时间来检测是否已检测到位置更改,对吗?如果应用程序在后台运行并且未检测到位置更改,locationManager:didUpdateLocations:委托方法将如何表现怎么办?

1 个答案:

答案 0 :(得分:0)

只有在位置发生变化时才会调用此委托方法,否则永远不会调用它。