RunLoop
31 мая 2017, 11:22
Run loop делает две вещи
- ожидает пока что-то не произойдёт.
- отправляет сообщение к получателю.
Несколько интересных моментов про таймер
- runloop к которому ты добавляешь таймер держит на него сильную ссылку (то есть тебе не обязательно локально складывать таймер в strong property).
- Таймер ретейнит свой таргет (тот у которого он будет вызывать селектор).
- запуск в бекграунде. Селектор таймера не вызывается т. к. на background queue другой ранлуп
- интересный момент про таймер, чтобы запустить его не на мейн потоке надо сперва стартануть ранлуп
- scheduledTimerWithTimeInterval добавляет таймер в существующий ранлуп главного треда, не надо ничего стартовать
Ссылки по теме:
http://macbug.ru/cocoa/mthreadrunloops
https://habrahabr.ru/post/199130/
Твитнуть
Поделиться
Поделиться
Популярное