dispatch_after или NSTimer?

Я разрабатываю метод, в котором каждые 3 секунды я показываю изображение в движении. Я делаю с помощью dispatch_after, но при каждом запуске приложения расстояние или время показа изображения разные. Более эффективно использовать NSTimer с расписанием?


person PlugInBoy    schedule 02.04.2015    source источник


Ответы (2)


Да, NSTimer — это высокоуровневый API, который легко реализовать и контролировать, например, если вы хотите приостановить или остановить анимацию, вы можете это сделать. Но GCD лучше по производительности, насколько я знаю.

person Retro    schedule 02.04.2015

Я думаю, что для повторяющегося периода времени NSTimer является более очевидным выбором. Помимо всего прочего, вам нужно убедиться, что каждый раз, когда вас вызывают, вызывается один и ровно один dispatch_after.

С цепочкой dispatch_after может быть риск того, что будет небольшой сдвиг во времени, поскольку задержки складываются, где с NSTimer, если одно событие немного запаздывает, должна быть немного более короткая задержка для следующего, чтобы оно не пострадало дрейф со временем.

person Joseph Lord    schedule 20.04.2016