2012-10-23 88 views
1

下面是一些簡單的代碼:爲什麼不調用locationManager:didUpdateLocations?

// ViewControllerA.m 

-(void) viewDidLoad 
{ 
    [super viewDidLoad]; 
    self.networkMonitor = [[NetworkMonitor alloc] init]; 

    ... 

    [self.networkMonitor.locationManager startUpdatingLocation]; 

    ... 
} 

網絡監控:

// NetworkMonitor.m 

-(id) init 
{ 
    self = [super init]; 
    if (self != nil) { 
     self.locationManager = [[CLLocationManager alloc] init]; 
     [self.locationManager setDelegate:self]; 
    } 
    return self; 
} 

... 

// this is never called! 
- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations 
{ 


    NSLog(@"%s, location manager returned a new location.", __FUNCTION__); 

    ... 

} 

// and neither is this 
- (void)locationManager:(CLLocationManager *)manager 
    didFailWithError:(NSError *)error 
{ 
    NSLog(@"Error: %@", [error description]); 
} 

我叫startUpdatingLocation,NetworkMonitor實現CLLocationManagerDelegate ...爲什麼我沒有得到到didUpdateLocations任何電話?我誤解這種方法應該被調用嗎?我假設一旦調用startUpdatingLocation,我應該至少收到一個電話didUpdateLocations ...我只是試圖獲取用戶的當前位置(不使用地圖)。任何想法或想法將不勝感激。

+1

你在爲ios6建設嗎?來自文檔: 在iOS 5及更早版本中,位置管理器改爲調用locationManager:didUpdateToLocation:fromLocation:方法。 – geraldWilliam

+0

太棒了!目前仍在爲iOS5構建。謝謝您的幫助。 – cowfaboo

+0

不用擔心。發佈爲答案。 – geraldWilliam

回答

5

你在爲ios6建設嗎?來自文檔:在iOS 5及更早版本中,位置管理器改爲調用locationManager:didUpdateToLocation:fromLocation:方法。

相關問題