Дорогие добрые люди stackoverflow,
Как и в прошлый раз, я тем самым поднимаю вопрос, который я недавно наткнулся. Надеюсь, кто-то там может пролить свет на меня.
Всякий раз, когда я пытаюсь загрузить большой файл за UIScrollView
, MPMapView
или что-то еще, процесс загрузки останавливается, как только я касаюсь экрана iPhone. К счастью, потрясающая запись в блоге Jörn предлагает альтернативный вариант, используя NSRunLoopCommonModes
для подключения.
Это заставляет меня заглянуть в детали двух режимов: NSDefaultRunLoopMode и NSRunLoopCommonModes, но документ Apple не любезно объясняет, кроме как сказать
NSDefaultRunLoopMode
Режим работы с источниками входных данных, отличными от объектов NSConnection. Это наиболее часто используемый режим run-loop.
NSRunLoopCommonModes
Объекты, добавленные в цикл выполнения, используя это значение в качестве режима, контролируются всеми режимами цикла запуска, которые были объявлены как члены набора "общих" режимов; подробнее см. описание CFRunLoopAddCommonMode.
CFRunLoopAddCommonMode
Источники, таймеры и наблюдатели регистрируются в одном или нескольких режимах цикла запуска и запускаются только в том случае, если цикл запуска работает в одном из этих режимов. Общие режимы - это набор режимов цикла запуска, для которых вы можете определить набор источников, таймеров и наблюдателей, которые совместно используются этими режимами. Вместо того, чтобы регистрировать источник, например, в каждом конкретном режиме цикла запуска, вы можете зарегистрировать его один раз в обычном псевдорежиме цикла цикла, и он будет автоматически зарегистрирован в каждом режиме цикла запуска в общем режиме. Аналогичным образом, когда режим добавляется к набору общих режимов, все источники, таймеры или наблюдатели, уже зарегистрированные в общем псевдорежиме, добавляются в недавно добавленный общий режим.
Может ли кто-нибудь объяснить это на человеческом языке?