2012-07-23 122 views
1

我已經閱讀了關於CMMotion的Apple文檔以及爲了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中只調用一次。我什麼都沒有。

回答

2

我的錯誤在這裏。這個問題源於我使用iOS模擬器來運行我的應用程序。顯然,加速度計不起作用。我認爲,因爲搖動和旋轉事件允許它們用於加速計。但是,它們只是用於屏幕的重新定位,這與加速度計無關。如果蘋果在文檔中包含這個,這將有所幫助。