Общие вопросы
Смешанные вопросы по Swift.
Открыть разделБаза Hintsage
Язык Swift и разработка приложений в экосистеме Apple.
Темы раздела
Смешанные вопросы по Swift.
Открыть разделТипы, функции, структуры, классы и базовая семантика.
Открыть разделOptionals, value/reference semantics, casting и pattern matching.
Открыть разделProtocols, extensions, associated types и generic constraints.
Открыть разделCollections, closures, map/filter/reduce и sequences.
Открыть разделARC, reference cycles, weak/unowned и время жизни объектов.
Открыть разделasync/await, actors, tasks и безопасность данных.
Открыть разделthrows, Result, defer и моделирование ошибок.
Открыть разделПрактика
После подписки контроллера на уведомления его deinit не вызывается после закрытия экрана; контроллер хранит токен подписки. Какой граф владения нужно проверить первым?
Представьте, что инициализатор класса завершился с ошибкой после создания вложенного объекта: кто освободит уже созданные объекты?
Влияет ли ссылка unowned на время жизни объекта?
Какова практическая семантика optional unowned-ссылки в Swift?
Захватывая изменяемую локальную переменную в escaping-замыкании, что именно сохраняет замыкание — её значение или общее хранилище?
Разберите замену сильной ссылочной переменной через inout: когда ARC освобождает прежний объект?
Две фоновые задачи одновременно читают и переназначают одну сильную ссылочную переменную. Достаточно ли ARC для безопасности такой операции?
Возможно ли хранить слабые ссылки непосредственно в массиве Swift без дополнительной обёртки?
Два независимых объекта созданы в одной функции, а их deinit записывает сообщения в журнал. Какой порядок их уничтожения можно считать гарантированным?
Метод actor приостановился на await: какое свойство его состояния нельзя считать сохранённым после возобновления?
Какую гарантию даёт Sendable при передаче значения между конкурентными задачами Swift?
Практическая ситуация: задача Swift получила сигнал отмены — что гарантирует сам факт отмены её немедленной остановке?
Что произойдёт с изоляцией текущего актора, если внутри его метода создать обычную Task вместо Task.detached?
Какой жизненный цикл имеет задача, созданная через async let, относительно области видимости родителя?
Насколько actor защищает изменяемый ссылочный объект после его возврата вызывающему коду?
Всегда ли actor выполняет изолированные вызовы в порядке их поступления?
В throwing task group одна дочерняя задача завершилась ошибкой, но родитель ещё не ожидает результат группы: что происходит с остальными дочерними задачами?
В приложении состояние экрана помечено @MainActor, но к нему обращаются из фоновой async-задачи: какую гарантию даёт такая изоляция?
Разбор ошибки: метод actor объявлен nonisolated, но обращается к изменяемому состоянию — какое правило изоляции здесь нарушено?
Сохраняет ли actor атомарность составной операции, если её реализация содержит await?
Показано 241–260 из 651