172 похожих чатов

Ребят подскажите, хочу перевести апку на async / await и

акторы

я вижу есть проблема с тем чтобы вызывать deinit в классах помеченных MainActor, ктонить решалу эту проблему?

2 ответов

15 просмотров

В общем и целом, тема deinit у акторов на данный момент довольно больная и сложная, будь-то синхронный isolated deinit или же async deinit, всё это пока недоступно. У авторов языка пока ведутся бурные обсуждения. Поэтому я бы в целом тебе не советовал(не только по этой причине) серьёзно заниматься переводом всего проекта на structured concurrency, а дождаться релиза Swift 6. Наверное единственное, что ты можешь сделать, это запустить Task.detached в котором ты выполнишь нужную тебе работу. Если для этой работы нужен доступ до хранимых свойств, то тебе придётся их захватить замыканием, НО ни в коем случае не захватывай self, ибо это всё равно не продлит время его жизни. Да, это может нарушить сериализацию(если тебе она нужна), но что есть. Системные UIView/UIViewController имеют синхронный deinit на MainActor, но они это делают через большой костыль и тебе его использовать не советуется )

A- Автор вопроса
Руслан Лутфуллин
В общем и целом, тема deinit у акторов на данный м...

ага понял, нашел уже бурные обсуждения. пока я использовал deinit в viewcontroller’ах и просто перешел на viewwilldisappear. Я делаю небольшой проект, небольшая скачка/загрузка доков/фоток в бэк плюс локальное хранение. Думал использовать async/await чтоб упростить управление связками с кешированием/загрузкой изображений и тд, пересмотрел все видео с wwdc и эта часть управления асинхронностю выглядит симпатично. Что кажется более тяжелым то это например то это какие то неявности, например что даже если класс помечен как MainActor но у экземпляра класса функцию вызывают не с main thread, то это не происходит автоматического переключения на Main. То есть все равно надо контроллить что на каком треде исполняется, пока вобщем разбираюсь. только после отсмотра всех видео слегка каша))

Похожие вопросы

Обсуждают сегодня

Типа вызывать GetParent и проверять на соответствие GetModuleHandle?
The Bird of Hermes
67
Всем привет! Кто нибудь парсил в ручную JSON без библиотек и фреймворков? Есть может ссылки на оптимальный алгоритмы работы с текстом и примеры таких парсеров?
Lem
27
Do any of you guys have interesting projects one could join? I'm a Middle Full-Stack developer (JS/TS, React & Node)
Lev Shapiro
40
Есть сайт. Там была древняя версия эво. Стоял плагин, который каждый коммент в Jot делал отдельной страницей. После обновления все слетело, теперь старница открывается отдельн...
Artem
1
$res = json_decode($наша строка из респонса); $res1 = array_map(fn($o) => $o->name, $res->breadcrumbs[0]->entities); Как такое будет на Хаскеле?.. В начале весь джейсон, в ко...
Хаскель Моисеевич Гопник
27
Вопрос по диагностике ошибок (я знаю в чем, в данном конкретном примере, я знаю, как исправить, пример модельный, понятно, что в реальности бывает намного запутаннее). module...
ⰄⰎⰋⰐⰐⰑⰛⰤⰧⰧⰩⰄ ⰊⰑⰁⰓⰡⰛⰦⰕⰫ
11
А чем вам питонисты не угодили?😂
.
79
В чем сила брат, в NASM или FASM?
Isaac Kleiner
18
Есть какой-нибудь для Delphi/FPC T*Compression(Decompression)Stream на базе LZ4/Zstd/любой другой быстрый(и хорошо сжимающий) алгоритм А ещё лучше в pure pascal А ещё лучше од...
notme
52
Приветствую всех. Хочу начать изучать код для программирования микроконтроллеров и не пойму с чего начать. То ли с Си, то ли с плюсов. Чем языки вообще различаются. С чего мож...
Андрей
7
Карта сайта