【问题标题】:Delegation and retrieving info on IOSIOS上的授权和检索信息
【发布时间】: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


【解决方案1】:

找到了交易。 代码非常好,问题出在 Iphone 模拟器中。 它以某种方式提供位置信息就好了,但没有提供标题信息,因此永远不会发送消息。 说些奇怪的事,苹果。

【讨论】:

  • 为我节省了大量研究时间。我看不出哪里出错了。
猜你喜欢
  • 2021-09-09
  • 2020-10-12
  • 2020-12-01
  • 1970-01-01
  • 2020-05-08
  • 1970-01-01
  • 2016-08-10
  • 2020-09-04
  • 2013-09-29
相关资源
最近更新 更多