编辑:添加了一个全局,现在它正在工作。但是我仍然有疑问..请继续阅读:)
我想在需要时在 Y 轴上进行加速,并在代码的不同部分使用它。在这个例子中,我在一个 while 循环中使用它来进行测试。
我的代码正在运行,但我是正确使用 UpdateToQueue... 方法还是这种“非正统”的方式来实现我想要的?
我将更新间隔设置为 30 毫秒,你认为这是一个“安全”的更新间隔吗?有人告诉我,在选择一个时我应该小心,因为当前或以后的硬件/iOS 更新可能无法跟上这样的间隔,这是真的吗?
double myAcceleration; // a global..
-(void) play // my "main" method..
{
CMMotionManager *motionManager = [[CMMotionManager alloc] init];
motionManager.deviceMotionUpdateInterval = 0.03; // update every 30ms
[motionManager startDeviceMotionUpdatesToQueue:[NSOperationQueue mainQueue]
withHandler:^(CMDeviceMotion *motion, NSError *error)
{
myAcceleration = motion.userAcceleration.y;
}
];
while(!self.stopButtonPressed)
{
NSLog(@"Y-Axis acceleration is %f", myAcceleration);
}
}