Могу ли я использовать CADisplayLink в качестве NSTimer?

Мне было интересно, могу ли я использовать таймер CADisplayLink вместо NSTimer, даже если я не делаю никакой анимации?

Я хотел бы вызвать определенный метод так же, как при использовании NSTimer, только на гораздо более высокой частоте (60 Гц было бы неплохо), поэтому мне было интересно, будет ли работать CADisplayLink Timer, даже если метод просто выполняет некоторые вычисления и ни какой анимации...

P.S. Я тестирую на iPhone 4


person Christian Gossain    schedule 27.11.2010    source источник


Ответы (1)


Я не понимаю, почему бы и нет. Вы даже можете получить более высокую производительность от CADisplayLink, потому что он не выполняет анимацию. Единственная проблема, с которой вы можете столкнуться, — это то, как Apple Review Board понравится ваше использование.

Я бы посоветовал просмотреть справочник классов вместе с образцом кода avTouch, предоставленным перед его использованием.

person Evan Mulawski    schedule 27.11.2010
comment
Почему у Apple могут возникнуть проблемы с использованием CADisplayLink в качестве таймера? Это именно то, для чего он был создан, особенно когда вам нужно координировать действия с частотой обновления дисплея. - person Brad Larson; 28.11.2010
comment
В ссылке на класс явно указано, что объект CADisplayLink используется для синхронизации рисования с частотой обновления дисплея. ОП заявил, что ему это нужно для расчетов. - person Evan Mulawski; 28.11.2010
comment
Напоминаем, что CADisplayLink будет стоять в очереди, если вы будете запускать приложение в фоновом режиме. NSTimer будет работать в фоновом режиме. - person seo; 19.07.2014