Обнаружьте баги в Swift‑примерe
Нужны два изменения: mutating у метода структуры и var для экземпляра s. У класса метод допустим даже при let-ссылке c.
Читать ответПодготовка к интервью
316 вопросов по Swift с технических собеседований
Что проверяют на интервью
На странице собраны вопросы по Swift — от проверки базовых принципов до практического применения и архитектурных решений. В подборке чаще встречаются темы: mobile, swift, ios.
Каталог
Нужны два изменения: mutating у метода структуры и var для экземпляра s. У класса метод допустим даже при let-ссылке c.
Читать ответgreetings2 и greetings3 не компилируются: self у структуры после [self] не optional, поэтому self?.name недопустимо. greetings1 корректен.
Читать ответОба вызова напечатают Cat: say() объявлен требованием Animal, а класс Cat реализует его самостоятельно.
Читать ответВ показанном примере явного retain cycle нет: process не захватывает self и не хранит completion в DataProcessor. Объект может освободиться после handler = nil.
Читать ответКод некорректен: у UIView нет addTarget, #selector не принимает вызов foo: 1, а инициализатор подкласса должен корректно вызвать super.
Читать ответРекурсивный enum необходимо объявить indirect целиком либо пометить только рекурсивный case friend.
Читать ответКод не компилируется: структура не может прямо содержать собственное значение, даже через Optional. Получается рекурсивная раскладка без конечного размера.
Читать ответКак написано, доступ к mainObject.b из внешнего синхронного контекста запрещён. Читать actor-isolated var нужно через await из асинхронного кода.
Читать ответМетод структуры, изменяющий её свойства, нужно объявить mutating. Без этого self внутри обычного метода неизменяем.
Читать ответВ показанном фрагменте выводится только 7: функция showNumbers объявлена, но нигде не вызвана.
Читать ответunowned self опасен: контроллер может исчезнуть за 20 секунд, а callback позже обратится к освобождённому объекту. asyncAfter не блокирует главный поток на это время.
Читать ответОсновные риски — неизвестная очередь callback, удержание контроллера и неясное время жизни сервиса. titleLabel здесь устанавливается до чтения, поэтому nil не гарантирован.
Читать ответ