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
...我只是試圖獲取用戶的當前位置(不使用地圖)。任何想法或想法將不勝感激。
你在爲ios6建設嗎?來自文檔: 在iOS 5及更早版本中,位置管理器改爲調用locationManager:didUpdateToLocation:fromLocation:方法。 – geraldWilliam
太棒了!目前仍在爲iOS5構建。謝謝您的幫助。 – cowfaboo
不用擔心。發佈爲答案。 – geraldWilliam