TGViewer
Vadim Chistiakov | IT Vadim Chistiakov | IT @ios_mobile_developer · 2.17K subscribers
Post #95 2.65K
Capture list 🤔

Сегодня разберем еще один классический вопрос с ios собеседований. Необходимо понять, что будет выведено в консоль.

Начем с самого простого. Переменная cityClass в пункте 4 меняет свое значение поля name. Т.к классы относятся к reference type, то захват в capture list никак не повлияет на итоговое значение. В консоле мы увидем в обоих случаях "Liverpool".

Переменная cityStruct - cтруктура, поэтому в первом замыкании она будет скопирована при захвате в capture list, а во втором обращение произойдет в момент выполнения замыкания к уже обновленной переменной. Поэтому "London" и "Marseille" соответственно.

Последний случай может показаться самым неочевидным. Переменная cityClassOptional захватывается в первом замыкании по слабой ссылке. В пункте 4 сначала создается еще один указатель на cityClassOptional, а потом заниляется. В замыкании closure1 будет выведено Paris - счетчик ссылок у объекта еще не равен нулю (doubleClass удерживает объект по сильной ссылке), а вот closure2 обратится по указателю уже к пустому значению.

Как итог, вывод в консоль будет выглядеть следующим образом:

1 - my city is Liverpool
2 - my city is London
3 - my city is Paris
4 - my city is Liverpool
5 - my city is Marseille
6 - my city is nil


А что произойдет если применить weak к переменной с типом структуры? К счастью, компилятор поможет понять, что такое действие недопустимо. ARC не применим к Value Types

'weak' may only be applied to class and class-bound protocol types

#interview #ios #swift
  • 👍 12
  • 🔥 3
  • 😱 2
  • 🤡 1
More from @ios_mobile_developer
  1. Sep 15, 2026На днях я получил ПМЖ Великобритании 👑. Этот путь занял 2 года и 10 месяцев. Вообще, это…
  2. Sep 2, 2026Давно тебя не было в Уличных Гонках ... Начну с базы - покупка машины в Лондоне - это глуб…
  3. Aug 21, 2026Как я вижу своего подписчика на Boosty 💰 Идеальный подписчик для меня не тот, у кого опре…
  4. Aug 10, 2026Возврат машины 🚘 Покупка машины лидировала в опросе, но база собесов все-таки ее обошла,…
  5. Aug 5, 2026Post #268
  6. Aug 5, 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 →