加速度计不工作



我已经阅读了苹果公司关于CMMotion的文档,NSLog加速计数据所需做的一切似乎都在我的应用程序中完成了。然而,当我运行应用程序并翻转屏幕时,加速计没有返回任何数据。我没有运行时错误。这是我的代码:

- (void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];
    ad = [[CMMotionManager alloc] init];
    //[ad startDeviceMotionUpdates];
    [ad startAccelerometerUpdates];
    //Returns Null
    NSLog(@"Accelerometer Data %@", ad.accelerometerData);
    BOOL accelerometerAvailable = ad.isAccelerometerAvailable?YES:NO;
    // Returns false, else statement is logged
    if(accelerometerAvailable) {
    NSLog(@"I guess it is...");
    } else {
    NSLog(@"I guess it is not...");
      }
    [ad startAccelerometerUpdatesToQueue:[NSOperationQueue currentQueue]     withHandler:^(CMAccelerometerData *accelerometerData, NSError *error) {
    NSLog(@"Your accelerometer data is: %@", accelerometerData.acceleration);
}];
 }

我尝试将此代码添加到我的另一个应用程序中,该应用程序按时间间隔返回数据,以确保我没有获得数据的原因是因为viewDidLoad只被调用一次。我还是一无所获。

这里是我的错误。这个问题源于我使用iOS模拟器来运行我的应用程序。显然,加速度计在其中不起作用。我认为,因为抖动和旋转事件是允许的,所以它们是针对加速度计的。然而,它们只是用于屏幕的重新定位,这与加速度计无关。如果苹果在其文档中包含这一点,将会有所帮助。

相关内容

  • 没有找到相关文章

最新更新