Безопасный интервал обновления для startDeviceMotionUpdatesToQueue: withHandler :?

EDIT: added a global and now it's working. But I still have my doubts.. Please read on :)

Я хочу, чтобы ускорение осуществлялось по оси Y всякий раз, когда мне это нужно, и использую его в разных частях моего кода. В этом примере я использую его внутри цикла while для целей тестирования.

Мой код работает, но правильно ли я использую метод UpdateToQueue ... или это неординарный метод? способ достижения того, что я хочу?

Я установил интервал обновления равным 30 мс. Как вы думаете, это "безопасно"? интервал обновления? Мне сказали, что я должен быть осторожен при выборе, потому что текущие или более поздние обновления оборудования / iOS могут не поспевать за таким интервалом, это правда?

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);
    }
}

Ответы на вопрос(2)

Ваш ответ на вопрос