我已编写此代码以从xcode中获取UIAccelerometer的G值。你能告诉我它是否正确?
-(void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration
{
float gValue = sqrt(acceleration.x*acceleration.x+acceleration.y*acceleration.y+acceleration.z*acceleration.z);
[gLabel setText:[NSString stringWithFormat:@"%.2f",gValue]];
}
请帮助我
答案 0 :(得分:2)
如果G value
应该是Gravitational acceleration
,则此代码不正确。
问题:
它可以工作,但只有当设备没有移动时,唯一的加速度是由地球的引力产生的。在所有其他情况下,等式是不正确的。
UIAcceleration值由G缩放。这意味着当设备处于空闲状态时,值将为(0, -1.0, 0)
,结果为1.0
。
另请注意,UIAccelerometer
已被弃用并被“Core Motion”框架取代。
编辑:使用[CMDeviceMotion gravity]
。