Ios7 CoreMotion加速计iPhone 5与iPod(5代)
我正在运行iOS 7.0.4的iPhone 5和iPod(第五代)上执行以下代码。在iPhone上,更新几乎是实时的,而在iPod上则有明显的延迟。我做错了什么导致了这种差异?它们不应该是一样的吗Ios7 CoreMotion加速计iPhone 5与iPod(5代),ios7,accelerometer,core-motion,Ios7,Accelerometer,Core Motion,我正在运行iOS 7.0.4的iPhone 5和iPod(第五代)上执行以下代码。在iPhone上,更新几乎是实时的,而在iPod上则有明显的延迟。我做错了什么导致了这种差异?它们不应该是一样的吗 motionManager = [[CMMotionManager alloc] init]; motionManager.accelerometerUpdateInterval = 1.0/20.0; // Update at 20Hz if (motionManager.acceleromete
motionManager = [[CMMotionManager alloc] init];
motionManager.accelerometerUpdateInterval = 1.0/20.0; // Update at 20Hz
if (motionManager.accelerometerAvailable) {
NSLog(@"Accelerometer avaliable");
queue = [NSOperationQueue currentQueue];
[motionManager startDeviceMotionUpdatesToQueue:queue
withHandler:^(CMDeviceMotion *accelerometerData, NSError *error) {
CMAcceleration useracceleration = accelerometerData.userAcceleration;
xLabel.text = [NSString stringWithFormat:@"%f", useracceleration.x];
xBar.progress = ABS(useracceleration.x);
yLabel.text = [NSString stringWithFormat:@"%f", useracceleration.y];
yBar.progress = ABS(useracceleration.y);
zLabel.text = [NSString stringWithFormat:@"%f", useracceleration.z];
zBar.progress = ABS(useracceleration.z);
force = (bodymass * sqrt((pow(useracceleration.x,2) + pow(useracceleration.y,2) + pow(useracceleration.z,2))));
forceLabel.text = [NSString stringWithFormat:@"%f", force];
forceBar.progress = ABS(force);
}];
}
请帮助…我希望此代码能够在两个设备上准确运行。谢谢 你所说的显著延迟是什么意思??还要注意的是,基准测试表明,iPodtouch第五代的计算能力与iPhone 4SPeter M差不多。如果力计算失败,iPod将花费大约一秒或更长的时间来显示任何变化。当iPhone 5(不是5s…打字错误)在几毫秒内更新时,我确实做了一些似乎有助于提高iPod性能的更改:我替换了行:queue=[NSOperationsQueue currentQueue];队列=[[NSOperationsQueue alloc]init];我还插入了:dispatch_async(dispatch_get_main_queue(),^{//这里的所有UI内容}这大大提高了性能,但仍然不如我在iPhone上看到的那么好。问题:1)这些更改在正确更新UI方面正确吗?2) 为什么在没有这些变化的情况下,它能在iPhone上工作?谢谢