Ios7 CoreMotion加速计iPhone 5与iPod(5代)

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

我正在运行iOS 7.0.4的iPhone 5和iPod(第五代)上执行以下代码。在iPhone上,更新几乎是实时的,而在iPod上则有明显的延迟。我做错了什么导致了这种差异?它们不应该是一样的吗

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上工作?谢谢