Два независимых объекта созданы в одной функции, а их deinit записывает сообщения в журнал. Какой порядок их уничтожения можно считать гарантированным?
База Hintsage
ARC и память
ARC, reference cycles, weak/unowned и время жизни объектов.
Практика
Вопросы: ARC и память
Возможно ли хранить слабые ссылки непосредственно в массиве Swift без дополнительной обёртки?
Две фоновые задачи одновременно читают и переназначают одну сильную ссылочную переменную. Достаточно ли ARC для безопасности такой операции?
Разберите замену сильной ссылочной переменной через inout: когда ARC освобождает прежний объект?
Захватывая изменяемую локальную переменную в escaping-замыкании, что именно сохраняет замыкание — её значение или общее хранилище?
Какова практическая семантика optional unowned-ссылки в Swift?
Влияет ли ссылка unowned на время жизни объекта?
Представьте, что инициализатор класса завершился с ошибкой после создания вложенного объекта: кто освободит уже созданные объекты?
После подписки контроллера на уведомления его deinit не вызывается после закрытия экрана; контроллер хранит токен подписки. Какой граф владения нужно проверить первым?
В приложении объект записан в статическое свойство, а все локальные ссылки на него обнулены. Когда ARC сможет уничтожить этот объект?
Служит ли weak-ссылка синхронизацией при одновременном уничтожении объекта в другом потоке?
Как по графу владения отличить retain cycle от объекта, который всё ещё удерживается ожидаемой сильной ссылкой?
Во время вызова метода объект захвачен сильным non-escaping-замыканием: до какого момента ARC обязан сохранять экземпляр?
При запуске долгоживущей Task, чьё замыкание захватывает self, когда ARC сможет уничтожить контроллер?
Сохраняет ли экземпляр класса время жизни после помещения в значение типа Any?
При копировании Array, содержащего экземпляры классов, что происходит с самими объектами до изменения одной из копий?
При присваивании экземпляра классового типа переменной any Protocol становится ли эта переменная его сильным владельцем?
В кэше объект хранится только через weak-ссылку. Почему он может исчезнуть сразу после добавления в кэш?
Кто запускает deinit экземпляра класса в Swift и почему его нельзя вызвать вручную?
Какой runtime-компромисс появляется при использовании weak-ссылки вместо strong?
Показано 1–20 из 50