TGViewer
ErrorNil. iOS-разработка ErrorNil. iOS-разработка @error_nil · 688 subscribers
Post #612 647

Forwarded from iOS Broadcast (Андрей Зонов)

⚠️ Как использовать [weak self] в задачах параллелизма Swift?
Навалим немного базы:[weak self] используется для предотвращения утечек памяти в замыканиях. В обработчиках завершения [weak self] и guard let self используются для проверки существования self перед продолжением выполнения. Но SE-0269 позволяет использовать неявные self-захваты в ситуациях, когда замыкания не сохраняются, что снижает вероятность утечек памяти.

Проблемы с [weak self] в Task
🟢Task начинает выполняться сразу после создания, что уменьшает вероятность освобождения self.
🟢Использование guard let self else { return } в начале Task не предотвращает утечку памяти, так как Task удерживает strong ссылку на self до завершения.

Предотвращение утечек памяти в Task
🟢Можно использовать nil проверку или guard let self else { return } внутри Task для проверки существования self.
🟢Для длительных задач можно перемещать guard let self else { return } внутрь цикла, чтобы захватывать strong ссылку на self только при необходимости.

Рекомендации по использованию [weak self] в Task:
⚠️ Большинство Task замыканий не требуют [weak self], так как Task обычно существует недолго
⚠️ Если необходимо избежать утечек памяти, не используйте guard let self else { return } в первой строке Task
⚠️ Разворачивайте self только тогда, когда это нужно, и храните его как можно короче
⚠️ Используйте self? для избежания полного разворачивания self
⚠️ Если возможно, захватывайте только необходимые свойства, а не весь self
  • 🔥 5
More from @error_nil
  1. Oct 9, 2026video post
  2. Oct 9, 2026К слову о том, что происходит
  3. Oct 9, 2026🫠
  4. Oct 7, 2026В общем, никто не просил, но я сделал — добавил мессенджер в своё приложение «Живой?». Ран…
  5. Oct 6, 2026Apple серьезно так поднапряглась с выходом нового айфона
  6. Oct 1, 2026А почему бы и нет? Я тут подумал, что такой формат решает проблему (не то что бы это прям…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →