There is no delegate message with motion manager. Use a timer (NSTimer) and poll the motion manager for its values, at intervals.
self.motman = [CMMotionManager new];
if (!self.motman.accelerometerAvailable) {
// report error or whatever
return;
}
self.motman.accelerometerUpdateInterval = 1.0 / 30.0;
[self.motman startAccelerometerUpdates];
self.timer =
[NSTimer
scheduledTimerWithTimeInterval:self.motman.accelerometerUpdateInterval
target:self selector:@selector(pollAccel:) userInfo:nil repeats:YES];
Now pollAccel:
is called repeatedly. Pull out the accelerometer info:
CMAccelerometerData* dat = self.motman.accelerometerData;
CMAcceleration acc = dat.acceleration;