На странице собраны вопросы по Swift — от проверки базовых принципов до практического применения и архитектурных решений. В подборке чаще встречаются темы: mobile, swift, ios.
Почему Apple рекомендует выбирать let, а не var? let имеет блочную область видимости, тогда как var — функциональную let не позволяет случайно выполнить повторное объявление Использование const и let сокращает число…
Высокоуровневая абстракция над потоками с удобным объектным API Поддержка приоритетов и настройка зависимостей между задачами Возможность отменять и приостанавливать операции Поддержка наблюдателей и KVO для контроля…
Swift, ARC, управление памятью unowned — неконтролируемая ссылка, которая не увеличивает счётчик ссылок weak — контролируемая ссылка: она изменяет счётчик и выполняет синхронизацию Для weak требуется атомарный доступ…
Почему выбирают UIKit, а не SwiftUI? UIKit — зрелый фреймворк с полноценной поддержкой iOS SwiftUI — сравнительно новая технология, рассчитанная на iOS 13+ UIKit обеспечивает детальный контроль над UI и анимациями…
В основе словаря лежит хеш-таблица Hashable вычисляет хеш-код ключа, по которому определяется индекс Equatable позволяет проверять равенство ключей при возникновении коллизий Хеш-код ускоряет поиск, добавление и…
Почему кнопка может не реагировать на нажатия? UI/UX: кнопка отключена (disabled) либо скрыта с помощью стилей События: обработчик событий отсутствует, привязан неправильно или не вызывается Перекрытие: кнопку может…
Почему нельзя блокировать main-поток во время сетевых операций? UI/UX: именно main-поток обеспечивает отзывчивость интерфейса При его блокировке происходит замерзание UI и ухудшается реакция приложения Сетевые запросы…
Сколько памяти нужно массиву из 5 ссылок на объекты классов? память распределяется между ссылками и объектами в куче размер одной ссылки определяется платформой: обычно 4 байта (32-бит) или 8 байт (64-бит) в массиве…
Асинхронные операции программирования Detached task выполняется независимо от родительского потока Обычная task запускается и контролируется родительским кодом, который может ожидать её завершения Detached task не…
Отличия race condition и data race область: конкурентность, многопоточность race condition — это ситуация, в которой результат определяется порядком выполнения потоков data race — разновидность race condition,…
Ключевое различие асинхронности и многопоточности асинхронность работает в одном потоке и запускает операции неблокирующе многопоточность задействует несколько потоков для параллельного выполнения асинхронная модель…
Ключевое различие concurrent и serial очередей Serial очередь обрабатывает задачи последовательно — каждую следующую только после предыдущей Concurrent очередь позволяет запускать задачи параллельно, чтобы они…