iPhone3.0指南针:如何获取航向?
我对Objective-C比较陌生,对它还不太了解,所以我为这可能是一个非常业余的问题道歉 我正试图从CLHeading和CLLocationDirection中得到磁航向。但是,这行代码出现编译错误:iPhone3.0指南针:如何获取航向?,iphone,cllocation,Iphone,Cllocation,我对Objective-C比较陌生,对它还不太了解,所以我为这可能是一个非常业余的问题道歉 我正试图从CLHeading和CLLocationDirection中得到磁航向。但是,这行代码出现编译错误: locationLabel.text = [[[location course] magneticHeading] stringValue]; 错误是: warning: invalid receiver type 'CLLocationDirection' error: cannot c
locationLabel.text = [[[location course] magneticHeading] stringValue];
错误是:
warning: invalid receiver type 'CLLocationDirection'
error: cannot convert to a pointer type
我真的不明白我做错了什么。请帮忙 如何分配和初始化
位置
?确保将位置
定义为(CLLocationDirection*)
,而不仅仅是(CLLocationDirection)
以下是使用指南针所需的步骤
1) 检查可用性:如果location manager的headingAvailable
属性为YES,则可以使用指南针
2) 使用位置管理器方法-(void)startUpdatingHeading
开始接收您正在搜索的信息
3) 使用委托方法实际检索此信息(不要忘记将自己设置为委托)
希望这能有所帮助。磁加载是CLLocationDirection类型,它只是基本数据类型“double”的typedef。在您的示例中,您试图向非对象的对象发送消息!您只需将double格式化如下:
locationLabel.text=[NSString stringWithFormat:@“Heading%.3f”,[[location course]magneticHeading]]代码>谢谢,这正是我感到困惑的地方。我想我需要了解更多关于typedefs的信息。看在谷歌的份上:headingAvailable属性从iO4开始就被弃用了。现在有一个headingAvailable类方法返回布尔值。
- (void)locationManager:(CLLocationManager *)manager didUpdateHeading:(CLHeading *)newHeading