Что делать, если проект использует ARC, а нужно использовать классы без ARC?
Ответ
ARC включается по файлу, а не на проект. Для legacy-файлов с ручным retain/release добавьте флаг компилятора -fno-objc-arc:
- Target → Build Phases → Compile Sources → колонка Compiler Flags у нужного
.m-файла →-fno-objc-arc. - Обратная ситуация (проект без ARC, один файл с ARC) — флаг
-fobjc-arc. - В SwiftPM для C/ObjC-таргета:
cSettings: [.unsafeFlags(["-fno-objc-arc"])]— ноunsafeFlagsзапрещены для зависимостей, поэтому библиотеки обычно просто мигрируют код.
Продолжение ответа с кодом и уточняющими вопросами интервьюера — в приложении DevPrep.
Полный ответ — в DevPrep