【发布时间】:2011-07-03 20:26:40
【问题描述】:
我正在尝试从 CLLocationManager 获取航向信息,但它没有被调用。我按照文档中的说明做了所有事情,但是出了点问题。 我正在使用 locationManager 委托给我的应用委托。
这里是检索标题消息的方法:
- (void) locationManager:(CLLocationManager *)manager didUpdateHeading:(CLHeading *)newHeading
{
NSLog(@"%@", newHeading);
}
这是 main() 中的部分
locationManager = [[CLLocationManager alloc] init];
[locationManager setDelegate:self];
[locationManager startUpdatingHeading];
但是什么也没发生!通过调试,NSLog 永远不会被调用。 当我对 [locationManager startUpdatingLocation] 执行相同操作时,一切正常,显示位置信息,使用另一种方法(看起来非常相似,但使用
- (void) locationManager:(CLLocationManager *) manager
didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation
但我需要这里的航向信息。
【问题讨论】:
-
您是否检查过您的设备可以检索航向信息?您必须先检查 [CLLocationManager headingAvailable]==YES。另请注意,模拟器将始终回答 NO。
-
不要被 -headingAvailable 所迷惑 - 不推荐使用上面提到的类方法 +headingAvailable。
标签: objective-c ios cocoa-touch