我使用Core Motion的传感器融合来获得朝北的运动更新:
[motionManager startDeviceMotionUpdatesUsingReferenceFrame:CMAttitudeReferenceFrameXTrueNorthZVertical toQueue:motionQueue withHandler:motionHandler]
在极少数情况下,只能在选定的客户设备(运行iOS 6.0.2的iPhone 4S)上重现我在motionHandler中收到此错误:
Error Domain=CMErrorDomain Code=102 "The operation couldn’t be completed. (CMErrorDomain error 102.)
此外,似乎我之后没有获得任何有效的deviceMotion更新。有谁知道这个错误102意味着什么?我在文档中找不到任何内容。
答案 0 :(得分:7)
正如Krishnabhadra正确指出的那样,此错误代码表示CMErrorTrueNorthNotAvailable
。描述(“真正的北方在这个设备上不可用。这通常表明该设备的位置尚不可用。”)遗憾的是没有给出任何提示如何解决问题所以我想描述我的发现当这个发生错误。
当使用CMAttitudeReferenceFrameXTrueNorthZVertical
(CMAttitudeReferenceFrameXMagneticNorthZVertical
正常)时,它出现在iOS 6.0+设备中的一小部分(少数几个)中。尽管有错误描述,但Core Location正常工作。在受影响的设备上,错误在100%的情况下被触发,并完全阻止Core Motion更新。 -[CMMotionManager deviceMotion]
始终返回nil
。
重置iOS系统设置可解决问题。
我已将rdar://12952327更多详细信息记录下来了。
<强>更新强> 如果在隐私/位置服务/系统服务部分中禁用罗盘校准,则会发生此错误。
答案 1 :(得分:3)
typedef enum {
CMErrorNULL = 100,
CMErrorDeviceRequiresMovement,
CMErrorTrueNorthNotAvailable
} CMError;
似乎错误102是CMErrorTrueNorthNotAvailable
,其描述是
<强> CMErrorTrueNorthNotAvailable 强>
似乎没有太多关于导致此错误的信息。它可能是设备的任何硬件问题。
答案 2 :(得分:2)
答案 3 :(得分:0)
102是CMErrorTrueNorthNotAvailable。我想您的设备在确定北方向或其他方面存在问题。
答案 4 :(得分:0)
我收到了这个错误,当我试图找到解决方案时,显然我的设备中的位置服务已关闭,一旦我打开,它就可以工作。