2011-06-02 56 views
1

我有一個應用程序,它具有與startUpdatingLocation一起運行的位置管理器。但是,如果它沒有移動的話,我stopUpdatingLocation,標記當前位置爲區域和startMonitoringForRegion像這樣:locationManager:didExitRegion:應用程序運行時未調用

[locationManager stopUpdatingLocation]; 

CLRegion* region = [[CLRegion alloc] initCircularRegionWithCenter:self.currentLocation.coordinate radius:25 identifier:@"last_loc"]; 

[self.locationManager startMonitoringForRegion:region desiredAccuracy:kCLLocationAccuracyNearestTenMeters]; 

[region release]; 

當應用程序被完全關閉,我退出該地區,的LocationManager:didExitRegion被調用,我繼續我的快樂的方式,像這樣:

- (void)locationManager:(CLLocationManager *)manager didExitRegion:(CLRegion *)region 
{  
    [self.locationManager stopMonitoringForRegion:region]; 

    [locationManager startUpdatingLocation]; 
} 

但是,如果應用程序正在運行,無論是在背景或前景,應用程序將不響應的LocationManager:didExitRegion。我錯過了什麼?

+0

你在iPhone 4硬件上測試嗎?只有iPhone 4硬件支持區域跟蹤。 – timthetoolman 2011-06-02 01:55:40

+0

@timthetoolman,是的,iPhone 4. – 2011-06-02 02:31:55

+0

你是否設置了位置管理器的代表? – timthetoolman 2011-06-02 03:14:28

回答

1

一定要初始化座標屬性。如果要將座標作爲用戶的當前位置,請使用[your location manager].location.coordinate.latitude和作爲初始化屬性。如果您需要高度,請包括[your location manager].location.altitude[your location manager].location.horizontalAccuracy,[your location manager].location.verticalAccuracy[your location manager].location.timeStamp。沒有這些信息,你會創建一個沒有座標但仍然存在的區域。本質上,它有一個名字,但沒有真正的信息。

相關問題