0

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:デリゲート メソッドはどのように動作しますか?

4

1 に答える 1

0

このデリゲート メソッドは、場所が変更された場合にのみ呼び出されます。それ以外の場合は呼び出されません。

于 2013-04-29T06:05:28.097 に答える