Всякий раз , коли я намагаюся завантажити великий файл з фоновим UIScrollView
, MPMapView
або що - то, процес завантаження отримує зупинився , як тільки сенсорний екран iPhone. На щастя, дивовижна публікація блогу від Джорна пропонує альтернативний варіант, який використовується NSRunLoopCommonModes
для з'єднання.
Це змушує мене розглянути деталі двох режимів, NSDefaultRunLoopMode та NSRunLoopCommonModes, але яблучний документ не люб'язно пояснює, крім слова
NSDefaultRunLoopMode
Режим роботи з джерелами введення, крім об'єктів NSConnection. Це найпоширеніший режим запуску циклу.
NSRunLoopCommonModes
Об'єкти, додані до циклу запуску, використовуючи це значення в режимі, відстежуються всіма режимами циклу запуску, які були оголошені членами набору "загальних" режимів; детальніше див. Опис CFRunLoopAddCommonMode.
CFRunLoopAddCommonMode
Джерела, таймери та спостерігачі реєструються в одному або декількох режимах циклу запуску і працюють лише тоді, коли цикл запуску працює в одному з цих режимів. Загальні режими - це набір режимів циклу запуску, для яких можна визначити набір джерел, таймерів та спостерігачів, якими поділяються ці режими. Замість того, щоб зареєструвати джерело, наприклад, для кожного конкретного режиму циклу запуску, ви можете зареєструвати його один раз у загальному псевдорежимі циклу запуску і він буде автоматично зареєстрований у кожному режимі циклу запуску у загальному наборі режимів. Так само, коли режим додається до набору загальних режимів, до нещодавно доданого загального режиму додаються будь-які джерела, таймери або спостерігачі, вже зареєстровані в загальному псевдорежимі.
Може хто-небудь, будь ласка, пояснить їх двома людською мовою?