Git Hub
коротко

RunLoop

31 мая 2017, 11:22

Run loop делает две вещи

  1. ожидает пока что-то не произойдёт.
  2. отправляет сообщение к получателю.

Несколько интересных моментов про таймер

  1. runloop к которому ты добавляешь таймер держит на него сильную ссылку (то есть тебе не обязательно локально складывать таймер в strong property).
  2. Таймер ретейнит свой таргет (тот у которого он будет вызывать селектор).
  3. запуск в бекграунде. Селектор таймера не вызывается т. к. на background queue другой ранлуп
  4. интересный момент про таймер, чтобы запустить его не на мейн потоке надо сперва стартануть ранлуп
  5. scheduledTimerWithTimeInterval добавляет таймер в существующий ранлуп главного треда, не надо ничего стартовать

Ссылки по теме:
http://macbug.ru/cocoa/mthreadrunloops
https://habrahabr.ru/post/199130/

Поделиться
Популярное