iPhone 3.0指南针:如何获得标题?

时间:2009-06-25 12:53:29

标签: iphone cllocation

我对Objective-C比较陌生,对它还不太了解,所以我为这可能是一个非常业余的问题道歉。

我正在尝试从CLHeading和CLLocationDirection获取磁路。但是我收到了这行代码的编译错误:

locationLabel.text = [[[location course] magneticHeading] stringValue];

错误是:

warning: invalid receiver type 'CLLocationDirection'  
error: cannot convert to a pointer type

我真的不明白我在这里做错了什么。请帮忙!

3 个答案:

答案 0 :(得分:14)

以下是使用指南针所需的步骤。

1)检查可用性:如果位置管理器的headingAvailable属性为YES,则可以使用指南针。

2)使用位置管理器方法-(void) startUpdatingHeading开始接收您要搜索的信息

3)实际使用委托方法检索此信息(不要忘记将自己设置为委托)

 - (void)locationManager:(CLLocationManager *)manager didUpdateHeading:(CLHeading *)newHeading

希望这有帮助。

答案 1 :(得分:3)

magneticHeading属于CLLocationDirection类型,它只是原始数据类型“double”的typedef。在您的示例中,您尝试将消息发送到不是对象的内容!你应该像这样简单地格式化双:

locationLabel.text = [NSString stringWithFormat:@"Heading %.3f", [[location course] magneticHeading]];

答案 2 :(得分:1)

您如何分配和初始化location?确保将location定义为(CLLocationDirection *),而不只是(CLLocationDirection)