Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iPhone3.0指南针:如何获取航向?_Iphone_Cllocation - Fatal编程技术网

iPhone3.0指南针:如何获取航向?

iPhone3.0指南针:如何获取航向?,iphone,cllocation,Iphone,Cllocation,我对Objective-C比较陌生,对它还不太了解,所以我为这可能是一个非常业余的问题道歉 我正试图从CLHeading和CLLocationDirection中得到磁航向。但是,这行代码出现编译错误: locationLabel.text = [[[location course] magneticHeading] stringValue]; 错误是: warning: invalid receiver type 'CLLocationDirection' error: cannot c

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

我正试图从CLHeading和CLLocationDirection中得到磁航向。但是,这行代码出现编译错误:

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