Intervalo de atualização segura para startDeviceMotionUpdatesToQueue: withHandler :?
EDIT: adicionado global e agora está funcionando. Mas eu ainda tenho minhas dúvidas .. Por favor, continue lendo :)
Eu quero obter a aceleração exercida no eixo Y sempre que preciso e usá-lo em diferentes partes do meu código. Neste exemplo, estou usando-o dentro de um loop while para fins de teste.
Meu código está funcionando, mas estou usando o método UpdateToQueue ... corretamente ou esse tipo de maneira "heterodoxa" de alcançar o que eu quero?
Eu configurei o intervalo de atualização em 30 ms, você acha que este é um intervalo de atualização "seguro"? Foi-me dito que eu deveria ter cuidado ao escolher um, porque as atualizações atuais ou posteriores de hardware / iOS podem não ser capazes de acompanhar esse intervalo. Isso é verdade?
double myAcceleration; // a global..
-(void) play // my "main" method..
{
CMMotionManager *motionManager = [[CMMotionManager alloc] init];
motionManager.deviceMotionUpdateInterval = 0.03; // update every 30ms
[motionManager startDeviceMotionUpdatesToQueue:[NSOperationQueue mainQueue]
withHandler:^(CMDeviceMotion *motion, NSError *error)
{
myAcceleration = motion.userAcceleration.y;
}
];
while(!self.stopButtonPressed)
{
NSLog(@"Y-Axis acceleration is %f", myAcceleration);
}
}