2012-07-23 2 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 시뮬레이터를 사용하여 나에게서 유래합니다. 분명히 가속도계가 작동하지 않습니다. 나는 그들이 흔들림과 회전 이벤트가 가속도계를위한 것이라고 인정했기 때문에 그것을 가정했습니다. 그러나 가속도계와 독립적 인 화면의 위치를 ​​변경하기위한 것입니다. 애플이이 문서에 포함 시켰다면 도움이 될 것이다.

관련 문제