Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/116.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
Iphone 为什么我的标题不使用核心位置更改?_Iphone_Ios_Ipad_Core Location - Fatal编程技术网

Iphone 为什么我的标题不使用核心位置更改?

Iphone 为什么我的标题不使用核心位置更改?,iphone,ios,ipad,core-location,Iphone,Ios,Ipad,Core Location,我正在使用iOS 5.1.1的WiFi iPad第1代 我已经设置了类似于此博客帖子的核心位置: 在: 我记录真正的航向值: NSLog(@"heading: %f", manager.heading.trueHeading); 无论我把iPad指向哪个方向,结果总是“真航向:-1.000000” 我已经在所有3个轴上旋转了设备,并在设置中启用了位置服务 你知道为什么这样不行吗?标题报告在iPad第1代上不起作用吗?要获得有效的标题数据,还必须配置CLLocationManager以更新位置

我正在使用iOS 5.1.1的WiFi iPad第1代

我已经设置了类似于此博客帖子的核心位置:

在:

我记录真正的航向值:

NSLog(@"heading: %f", manager.heading.trueHeading);
无论我把iPad指向哪个方向,结果总是“真航向:-1.000000”

我已经在所有3个轴上旋转了设备,并在设置中启用了位置服务


你知道为什么这样不行吗?标题报告在iPad第1代上不起作用吗?

要获得有效的标题数据,还必须配置CLLocationManager以更新位置。从Apple文档中:

注意:如果希望标题对象包含 TrueTHeading属性,您的位置管理器对象也应为 配置为提供位置更新。你可以开始送货了 通过调用location manager对象的 startUpdatingLocation方法

因此调用
startUpdatingLocation


请注意,“标题”是指定义的设备轴指向的方向。“方向”,您可以使用[UIDevice currentDevice]读取。方向告诉您设备的倾斜。

-1表示指南针航向无效。您可能需要执行指南针校准

以下是对我的帮助:

  • 选择位置服务(在隐私设置下)
  • 选择应用列表底部的系统服务(在位置服务中)
  • 打开指南针校准
  • 这样看来,trueheading值不再是-1

    (见下图)


    是否“是==管理者.headingAvailable”?NSLog(@“headingAvailable:%@),(管理者.headingAvailable?@“是”:@“否”)==是答案是肯定的?(您上面的代码缺少一个参数。)是的,标题是可用的,每次我移动设备时它都会发送更新,但标题总是一样的。这太奇怪了。我将应用程序设置为kCLLocationAccuracyBest,headingFilter为1,设置委托,称为startUpdatingLocation和startUpdatingHeading。即使在旋转之后,每次移动设备时我仍然会得到-1.000000绕所有3个轴旋转几次。但是,我能够获得磁航向。我绕所有3个轴旋转了设备几次,但没有变化。您应该查看heading.trueHeading,而不是manager.heading.trueHeadingChanged,但仍然得到-1.000000的结果:(谢谢,但我不能做正确的标记,因为这是一个旧项目,我不再做它了。我做了投票,希望如果其他人遇到这个问题,它将帮助他们。)。
    NSLog(@"heading: %f", manager.heading.trueHeading);