2012-11-12 60 views
0

在iOS6的,該CLLocationManager委託方法:在iOS6的委託比較舊的位置與新位置

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

爲了得到最後的位置(最新:

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

已過時,現在它被取代一個),我們得到陣列上的最後一個對象:

- (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] 
    } 

所以,當應用程序就會在後臺,我開始尋找在設備位置顯著的變化,但是這通常需要一段時間,如果已檢測到的位置變化來檢測,對不對?如果應用程序在後臺運行並且沒有檢測到位置更改,那麼委派方法將如何工作?

回答

0

只有在某個位置發生更改時纔會調用此委託方法,否則它將永遠不會被調用。