저는 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 한 번만 호출되기 때문에 내가 데이터를 가져 오는되지 않은 이유는 것을 확인하기 위해 시간 간격에 데이터를 반환 내 다른 응용 프로그램에이 코드를 추가했습니다. 나는 아직도 아무것도 얻지 못했다.