Я получаю более точные или более быстрые показания акселерометра с помощью Core Motion?

Я могу использовать этот метод рамок Core Motion:

- (void)startAccelerometerUpdatesToQueue:(NSOperationQueue *)queue withHandler:(CMAccelerometerHandler)handler

в качестве альтернативы

- (void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration

UIAccelerationDelegate метод UIKit. Там я должен указать частоту обновлений. Я хочу получить данные ускорения как можно быстрее и точнее.

Является ли Core Motion моим другом здесь? Какую частоту чтения я могу ожидать от этого метода Core Motion? В документации не говорится об этом.

Ответ 1

Изменить! Теперь, когда этот ответ более года, конечно, он имеет только историческое значение. На этом этапе, я думаю, каждый должен использовать только CoreMotion и это. Надеюсь, что этот исторический ответ поможет студентам истории!


Мне кажется, что CMAttitude и CMDeviceMotion дают преимущество и ускорения и гироскопа (если присутствует гироскоп). В то время как CMAccelerometerData только ускорение. (Точно так же, как в старые времена перед Core Motion.)

Мое впечатление, что два основных преимущества CoreMotion:

(One) разумное умение иметь кватернионы и отношение, данное вам на серебряном блюде

(Два), по-видимому, оба гироскопа и ускорения используются на машинах с гироскопом, без дополнительной работы от вас... огромное преимущество.

Я считаю, что нет фактической технической разницы в качестве использования акселерометра как такового.

Таким образом: если (по какой-то причине) вы хотите только ускорение, и вы можете выполнить математику (если это относится к вашей задаче под рукой), вы можете использовать делегат ускорителя старой школы.

Кажется, что, короче говоря, никто из нас больше не будет использовать делегата акселерометра старой школы!