№35 - Все что нужно знать об ARC в Swift | На курсах такого не расскажут

Поділитися
Вставка
  • Опубліковано 9 січ 2025

КОМЕНТАРІ • 180

  • @bwswift
    @bwswift  Рік тому +6

    Доклад Максима про value types
    ua-cam.com/video/8L5cUiV1qDo/v-deo.html
    Поддержите канал на патреоне!
    www.patreon.com/bwswift

  • @woodensn2020
    @woodensn2020 Рік тому +14

    почти полтора часа нереально крутого урока! Такого точно не расскажут на курсах. Спасибо большое

    • @bwswift
      @bwswift  Рік тому +1

      Благодарю!

  • @bulgakov1991
    @bulgakov1991 Рік тому +17

    Лучшее объяснение данной темы которое я слышал! Большое спасибо)

    • @bwswift
      @bwswift  Рік тому

      Благодарю!

  • @siberian_arg
    @siberian_arg Рік тому +5

    Ответы:
    -3-ий тип reference type - actor (буду честен, сначала ответил функция, но кложура это и есть функция, потому что в интернете пишут про классы, функции и кложуры - в основном, например в статьях на хабре, понимаю, Хабр не то место где нужно черпать знания. Но начинающему разрабу всегда тяжко в фильтрации материалов, он не понимает, что хорошо, а что плохо, как в моем случае. но спасибо что есть Вы!);
    -2^64 это 16 Эксабайтов.
    14:00 Слепок оперативной памяти и кладет его на диск - просто копию оперативки? извините за глупый вопрос, вот не понятно конкретно слепок чего и что подразумевается под этим? не могу представить абстрактно
    понял что нужно глянуть занятия 13-16. а по факту лучше все пересмотреть.
    после того, как есть некое понимание в разработке, смотреть ваши толковые ролики очень и очень полезно.
    Дякую и Рахмет за проделанный труд! 1час 20 минут и 57 секунд - пролетают не заметно. особенно, когда в лекции полезна каждая минута.

  • @dqueenprinsees
    @dqueenprinsees Рік тому +19

    Спасибо большое за лекцию! Как писали уже ранее на одном дыхании посмотрела. Я знала, что здесь будет что-то, что меня удивит, и так и есть - потрясающе полный и интересный материал по кложурам. Я не знала половину материала, было очень полезно.
    Мне кажется, чуть изменился способ подачи информации по сравнению с первыми видео этого курса. Очень нравится, особенно рубрика "Это спрашивают на собеседование" и "Этого не знают даже senior". Очень много полезной информации в доступном формате.
    Действительно, то, что вы делаете на просторе UA-cam, на голову выше и не сравнится с материалами, которые дают на курсах (есть с чем сравнить). Формат 1ч20м чистой информации просто удивляет, и хочется, чтобы ваша мотивация только росла. Желаю очень много подписок на Patreonе.

    • @bwswift
      @bwswift  Рік тому +1

      Благодарю за поддержку и ваш тёплый комментарий!

  • @AlexAlex-vx6me
    @AlexAlex-vx6me Рік тому +5

    Вячеслав вы самый лучший!Лучше вас никто не учит!

  • @arseny_borovik
    @arseny_borovik Рік тому +1

    Самый лучший канал по iOS разработке, который я видел. Спасибо большое!

  • @ДмитроСолоп-у7р

    Дякую за вичерпний матеріал, та незрівнянну подачу!!!

  • @maximmatusevich9695
    @maximmatusevich9695 9 місяців тому +1

    Спасибо, Вячеслав за отличный материал!

  • @АлександрСергеевич-с7р

    Слава, спасибо тебе за лекцию, все как всегда, на высшем уровне!

  • @_soscooter_6689
    @_soscooter_6689 Рік тому +2

    невероятно классная лекция
    канал тоже поражает полезностью
    Все очень просто и очень интересно
    Огромное вам спасибо за ваш труд !!!!

  • @thevilkis
    @thevilkis Рік тому +2

    Отличная подача материала! Пожалуй, самые интересные уроки по Свифту в рунете

  • @maxkmr7438
    @maxkmr7438 Рік тому +1

    Вячеслав, мне нравится что в одном видео вы объединяете всё по теме, в дном видео по таймкодам отыскать проще(как мне кажется) для повторения, чем ещё и по разным видео искать.💙💛

  • @elmira5244
    @elmira5244 11 місяців тому

    Лучшее объяснение ARC👍Тысяча благодарностей☺

  • @MeMOoo444
    @MeMOoo444 10 місяців тому

    спасибо большое ,2 месяца изучаю Свифт , вы объясните проще всех))

  • @ВадимВова-т6л
    @ВадимВова-т6л Рік тому +3

    Круто, професійно, доступно! Дякую!

    • @bwswift
      @bwswift  Рік тому

      Дякую за комент!

  • @oleksandr4449
    @oleksandr4449 Рік тому +4

    Спасибо, Слава! Освежаю теорию, готовясь к собесам и вспоминаю курсы Лёши Скутаренко. Прям по простому, с примерами и визуализацией. Думаю для молодых специалистов это топ.
    Было бы еще неплохо обзавестить каким-то комьюнити, в котором студенты смогут выкатывать свои домашние задания и обсуждать их.

    • @bwswift
      @bwswift  Рік тому

      Благодарю за комментарий, есть чат в телеграмме, там можно задать вопросы и получить ответы

  • @АртемСергєєв-л9ц

    Дуже розгорнута відповідь на цю тему. Гарні прикладі. Лекція проглядається на одному диханні.

  • @ЕкатеринаКрасова-ч6в

    Лучшее объяснение arc! Спасибо!

  • @true_rocknrolla
    @true_rocknrolla Місяць тому

    Добавьте в меню альтернативу! Фильтр, v60, аэропресс. Помимо сладостей ещё хорошо иметь какие-нибудь сэндвичи, их можно прямо на месте в электрогриле жарить

  • @user-iOSnick-dev
    @user-iOSnick-dev Рік тому

    Очередное спасибо! И только успехов вам!

  • @Pro-jz8wg
    @Pro-jz8wg Рік тому +2

    Лучший канал по swift!)спасибо за уроки!!!

    • @bwswift
      @bwswift  Рік тому

      Спасибо за комментарий !

  • @РафаэльГ-д6б
    @РафаэльГ-д6б Рік тому +2

    Большое спасибо за Ваш информативный урок!

    • @bwswift
      @bwswift  Рік тому

      И вам спасибо!

  • @tigran.zakaryan
    @tigran.zakaryan Рік тому +1

    Прекрасные 80 минут!

  • @БердиёрХолматов-ж7э

    Здравствуйте Вячеслав! Видеоурок вышел просто супер, спасибо за объемную информацию.
    Вячеслав, хотел уточнить, можно ли получить презентации с ваших видеоуроков? Было бы очень круто.

  • @vitalijsminins8305
    @vitalijsminins8305 Рік тому +3

    53:02
    почему когда pat = nil, все так вызвался deinit, если есть strong reference cycle между command и pat ?

  • @morrterry
    @morrterry Рік тому +3

    Спасибо большое, за лекцию! Удачи в развитии канала :)

    • @bwswift
      @bwswift  Рік тому

      Благодарю!

  • @rembizarre
    @rembizarre Рік тому

    Шикарный контент. Наткнулся случайно на deinit видео. Молодец. Спасибо

  • @vladyslavsushko1967
    @vladyslavsushko1967 Рік тому +1

    Спасибо за труд, очень современно и доходчиво! Развития каналу!

    • @bwswift
      @bwswift  Рік тому

      Благодарю

  • @dmitrykiri
    @dmitrykiri Рік тому +3

    Лучший, спасибо огромное!

  • @vladimirstepanov7246
    @vladimirstepanov7246 Рік тому +1

    Оставляю комментарий в поддержку канала)

    • @bwswift
      @bwswift  Рік тому

      Благодарю!

  • @feel9695
    @feel9695 11 місяців тому

    Спасибо за лекцию! Достаточно подробно описана работа именно с объектами. Жаль правда не копнули немного в глубину, по типу того как именно удаляются weak и unowned ссылки, сразу они удаляются или какой у них жизненный цикл удаления, Side Tables и так далее. Но подача материала очень прияная. Еще раз спасибо!

    • @bwswift
      @bwswift  11 місяців тому +1

      Копнуть в глубину это +2ч к длине видео

  • @yaliisk5928
    @yaliisk5928 Рік тому +2

    Спасибо за материал. Всегда очень доходчиво.
    Третий вариант ссылочного типа в swift это, скорее всего, Indirect enum,

    • @bwswift
      @bwswift  Рік тому +1

      Нет. Подсказку ищи в разделе документации concurrency

  • @ikkay
    @ikkay 4 місяці тому

    столько нюансов, спасибо за разъяснение!

  • @KonstantinFederal
    @KonstantinFederal Рік тому +3

    Отличный урок! Большое спасибо

  • @Andriybiguniak
    @Andriybiguniak Рік тому

    крута лекція, дякую !

    • @bwswift
      @bwswift  Рік тому

      І вам дякую!

  • @renagurbanovasenglish
    @renagurbanovasenglish 9 місяців тому

    Кака же ясно объяснили, спасиииибо

  • @dinachernykh5702
    @dinachernykh5702 Рік тому +1

    Спасибо за лекцию! Очень интересно и понятно, рада, что нашла ваш канал, дай бог вам здоровья ! Слава Украине

    • @bwswift
      @bwswift  Рік тому

      Благодарю! Героям слава!

    • @emilsh7
      @emilsh7 Рік тому

      Поддерживаю предыдущего оратора

    • @bwswift
      @bwswift  Рік тому

      @@emilsh7 👍

  • @raheemgabibov7523
    @raheemgabibov7523 Рік тому +2

    Длинные лекции топ

    • @bwswift
      @bwswift  Рік тому

      Благодарю!

  • @Mirorval
    @Mirorval 6 місяців тому

    Офигенная подача!

  • @mrunicorn-p4x
    @mrunicorn-p4x Рік тому +2

    Спасибо за очередное невероятно познавательное видео. Листал сообщения, но не нашел такой же мысли: третий ссылочный тип это Функции высшего порядка?

    • @mrunicorn-p4x
      @mrunicorn-p4x Рік тому

      наверное после лекции внимание рассеялось, увидал правильный ответ - Актор из wwdc21

    • @bwswift
      @bwswift  Рік тому

      Не

  • @surfspot8043
    @surfspot8043 Рік тому +2

    Спасибо, это одна из лучших лекций по ARC! Можно еще рассказать зачем все-таки два вида слабых ссылок (weak и unowned). Если они оба выполняют одинаковую работу, то в чем профит, кроме опциональности? unowned потребляет меньше ресурсов?

    • @bwswift
      @bwswift  Рік тому +1

      Производительность. Unowned быстрее

  • @КонстантинИсаченко-е3б

    Спасибо за Ваши талантливые уроки! А про акторы сможете также понятно рассказать?

    • @bwswift
      @bwswift  Рік тому

      В акторах нет ничего сложного :) но эта тема для отдельного плейлиста по многопоточности

  • @janehotnorth468
    @janehotnorth468 4 місяці тому +2

    Надіюсь, що виконав все правильно, але наче виглядає досить добре :)
    Код:
    class Person {
    var name: String
    var surname: String
    var home : Home?
    var saying : () -> Void = {}
    init(name: String, surname: String) {
    self.name = name
    self.surname = surname
    }
    convenience init() {
    self.init(name: "Unknown", surname: "Unknown")
    }
    convenience init(surname: String) {
    self.init(name: "Unknown", surname: surname)
    }
    deinit {
    print("I have deleted class - Person")
    }
    }
    // Створив почтаковий класс з функцією та параметрами
    // Добавив деініціалізатор та кастомні ініціалізатори
    // Класс Персон ссилається на cat1.name через clousure
    class Home {
    var typeofhome : String
    var garage : Garage?
    var inhabitant : Cat?
    init(typeofhome: String) {
    self.typeofhome = typeofhome
    }
    convenience init() {
    self.init(typeofhome: "Unknown")
    }
    deinit {
    print("I have deleted class - Home")
    }
    }
    // Створив новий класс з функцією та параметрами
    // Добавив деініціалізатор та кастомні ініціалізатори
    // Класс Cat1.home ссилається на home1
    class Garage {
    var carplaces : Int
    var width : Int
    var height : Int
    var owner : Person?
    var inhabitant : (() -> Void)?
    init(carplaces: Int, width: Int, height: Int) {
    self.carplaces = carplaces
    self.width = width
    self.height = height
    }
    convenience init() {
    self.init(carplaces: 0, width: 0, height: 0)
    }
    func printsome () -> Void {
    print("It's a youre garage")
    }
    deinit {
    print("I have deleted class - Garage")
    }
    }
    // Створив новий класс з функцією та параметрами
    // Добавив деініціалізатор та кастомні ініціалізатори
    class Cat {
    var name : String
    var owner : Person
    var home : Home?
    var animalsVoice : (() -> Void)?
    init(name: String, owner: Person) {
    self.name = name
    self.owner = owner
    }
    convenience init() {
    self.init(name: "Unknown", owner: Person())
    }
    deinit {
    print("I have deleted class - Cat")
    }
    }
    // Створив новий класс з функцією та параметрами
    // Добавив деініціалізатор та кастомні ініціалізатори
    class Dog {
    var name : String
    var owner : Person?
    var animalsVoice : (() -> Void)?
    var home : Home?
    init(name: String, owner: Person) {
    self.name = name
    self.owner = owner
    }
    convenience init() {
    self.init(name: "Unknown", owner: Person())
    }
    deinit {
    print("I have deleted class - Dog")
    }
    }
    // Створив новий класс з функцією та параметрами
    // Добавив деініціалізатор та кастомні ініціалізатори
    do {
    var person1 = Person(name: "Max", surname: "Vazocskii")
    var home1 = Home(typeofhome: "Apartaments")
    var garage1 = Garage()
    var cat1 = Cat()
    var dog1 = Dog()
    person1.saying = {
    print(cat1.name)
    }
    cat1.home = home1
    home1.garage = garage1
    garage1.inhabitant = {
    print(dog1.name)
    }
    dog1.owner = person1
    }

  • @SergSphinx
    @SergSphinx Рік тому +1

    На одном дыхании 😊

  • @TheHeartOfTheCore
    @TheHeartOfTheCore Рік тому

    посмотрел Максима, очень интересно.

  • @Amirka1719
    @Amirka1719 Рік тому +1

    Небольшая ремарка, что стэк находится не в ОЗУ, а в кэш-памяти процессора и могут быть помещены в Heap

  • @surfspot8043
    @surfspot8043 Рік тому +2

    Третьим ссылочным типом может являтся структура если ее передать в метод с использованием аргумента inout. В таком случае передается ссылка а не копия.

    • @bwswift
      @bwswift  Рік тому

      Структура в таком варианте действительно передается по ссылке, но это не делает ее ссылочным типом. А я спрашиваю именно за еще один тип данных

  • @Деревенский-х7ы
    @Деревенский-х7ы Рік тому +1

    26:00 В стеке? Референс типы же вроде хранятся в куче

    • @bwswift
      @bwswift  Рік тому +3

      Тут все правильно. Сам объект находится в куче, но ссылка на этот объект находится в стеке. Мы работаем со ссылками которые лежат в стеке, но эти ссылки ссылаются на объекты в куче.

  • @zr2x
    @zr2x Рік тому +1

    Спасибо большое за такое объемное видео!
    Подскажите, вы занимаетесь менторством?

    • @bwswift
      @bwswift  Рік тому

      Да, но сейчас поставил на паузу

  • @tiffany668
    @tiffany668 Рік тому +1

    Top like Always 🎉💪🏼

  • @kamilsuleymanov7197
    @kamilsuleymanov7197 Рік тому +6

    3й тип акторы?

  • @shurale85
    @shurale85 Рік тому

    Не могли бы уточнить, методы/функции хранятся в сегменте TEXT памяти и в каком виде?

  • @Konstantin-y8i
    @Konstantin-y8i Рік тому +5

    когда-нибудь скажут: какие-то сильные джуны пошли
    а им ответят: мы учились у В’ячеслав Білий

    • @bwswift
      @bwswift  Рік тому +5

      Мой оффлайн курс был рассчитан на Стронг Джуниоров, что бы после курса им не хватало только коммерческого опыта что бы назваться мидлом. Поэтому так и получается

  • @ВикторПеливан
    @ВикторПеливан 5 місяців тому

    Интересно, а что произойдет, если два класса будут ссылаться друг на друга слабыми ссылками? Классы освободятся раньше времени? Код в playground выполняется одинаково. В чем тогда разница? Почему бы повсеместно не использовать weak? Или дело все чисто в неудобстве использования из-за опционалов?

  • @vladimir.anisimov
    @vladimir.anisimov Рік тому

    Вячеслав, спасибо большое за огромный пласт работы! Очень полезно!
    А где можно посмотреть про диспечиризацию?

    • @bwswift
      @bwswift  Рік тому

      Еще не снял

  • @bangbang-c8h
    @bangbang-c8h Рік тому

    лекция огонь

  • @swiftuz524
    @swiftuz524 Рік тому

    Просто супер! 👍👍👍

  • @zoomle_iOS
    @zoomle_iOS Рік тому +1

    Спасибо!

  • @gabibli
    @gabibli Рік тому

    Жаль что не была затронута тема Side table

    • @bwswift
      @bwswift  Рік тому

      Это очень глубоко, не в курсе для начинающих

  • @maryjay558
    @maryjay558 10 місяців тому

    А функция или замыкание внутри структуры хранится вместе со структурой в стеке или в куче? И наоборот: где хранятся int и string, принадлежащие классу, вместе с ним в куче или все же в стеке?

    • @bwswift
      @bwswift  10 місяців тому

      Смотрите доклад Макса в закрепленном коментарии

    • @m.d.2029
      @m.d.2029 10 місяців тому

      если экземпляр типа значения является частью экземпляра ссылочного типа, то значение сохраняется в куче вместе с экземпляром ссылочного типа. Например, структура сама по себе хранится в стеке, но если эта структура расположена в классе, то так как класс хранится в куче, то и структура будет сохранена в куче.

  • @Iaroslav_beldin
    @Iaroslav_beldin Рік тому +1

    Спасибо! Hearthstone по итогу с утечкой или не правильно понял?)

    • @bwswift
      @bwswift  Рік тому +1

      Да, он был с утечкой, когда я в него играл пару лет назад.

  • @Антон-ъ4г8ф
    @Антон-ъ4г8ф Рік тому +1

    Есть мнение, что weak ссылка ссылается не на Heap а на Side Table, так ли это?

    • @bwswift
      @bwswift  Рік тому +1

      Зависит от версии Свифта, в последних да. Эта функциональность так же дает возможность в будущем добавить сторед проперти в extension, но не думаю что это в ближайшем будущем допилят.

  • @Xname00
    @Xname00 Рік тому +1

    Вячеслав, если не трудно, скажите пожалуйста, если ARC контролирует память для ссылочных типов (считает ссылки), то чем контролируются тип значения, когда система понимает что нужно удалить их или она удаляет их, когда они отработали в своем скоупе?

    • @bwswift
      @bwswift  Рік тому +1

      Посмотрите как устроен стек. Когда со стека что-то уходит - оно умирает. Жизнь value types контролируется принципом работы стека.

    • @Xname00
      @Xname00 Рік тому +1

      @@bwswift Благодарю

  • @vladloktionov5860
    @vladloktionov5860 Рік тому

    Reference Type - Classes, Closures, Protocols

  • @Xname00
    @Xname00 Рік тому +3

    3 тип - функции?

    • @bwswift
      @bwswift  Рік тому

      Это кложуры, их уже назвал

  • @IlnurMugaev
    @IlnurMugaev Рік тому +1

    3-й reference type - indirect enum?

    • @bwswift
      @bwswift  Рік тому

      Не.

    • @IlnurMugaev
      @IlnurMugaev Рік тому

      @@bwswift аргументы inout?

    • @bwswift
      @bwswift  Рік тому

      @@IlnurMugaev не. Прдсказку ищи в разделе документации concurrency

    • @IlnurMugaev
      @IlnurMugaev Рік тому

      @@bwswift ага нашел, actor вроде используется с версии Swift 5.5, это, насколько я понял, минимальная версия iOS 15 должна быть?

    • @bwswift
      @bwswift  Рік тому

      @@IlnurMugaev во время выхода фичи - да. Но они продолжали работать над back-deployment что бы это работало с 13+, но я не следил за этими изменениями после релиза. Так что теоретически уже может работать и с 13+ если доделали.

  • @vadim_polovoi
    @vadim_polovoi Рік тому

    Вячеслав, добрый день. Когда может быть куча не одна, а несколько?

    • @bwswift
      @bwswift  Рік тому +1

      Відповів в телеграм каналі
      t.me/bwswift/442

    • @vadim_polovoi
      @vadim_polovoi Рік тому

      Спасибо, присоединился)@@bwswift

  • @ДмитроСолоп-у7р

    Стосовно третього референс-типу, то це здається AnyObject

    • @bwswift
      @bwswift  Рік тому

      Не вгадав.

    • @ДмитроСолоп-у7р
      @ДмитроСолоп-у7р Рік тому

      @@bwswift я загуглив і знайшов що до референс-типу ще додають функції, але ж це майже те саме що і замикання

  • @TheHeartOfTheCore
    @TheHeartOfTheCore Рік тому

    и тот ref-type, который я напишу в комментарии: функция)

    • @bwswift
      @bwswift  Рік тому

      И будеш не прав :)

  • @ОльгаСороколетова-в3щ
    @ОльгаСороколетова-в3щ 8 місяців тому

    спасибо!

  • @InvestorFIRE
    @InvestorFIRE Рік тому

    Спасибо !!!!

  • @thisissergo5874
    @thisissergo5874 3 місяці тому

    Вашего отца не Генадий Валентинович Писаренко зовут? Вы из Запорожья? Вы один в один похожи

  • @МахмуджанНиязов

    а GCD будет?)

    • @bwswift
      @bwswift  Рік тому

      Будет но не скоро

  • @МиколаВасик-в3щ

    In Swift, classes, actors, and closures are all reference types. upd: приєднуюсь до всіх вдячних людей))

    • @bwswift
      @bwswift  Рік тому

      Все вірно!

  • @sarvarqosimov8363
    @sarvarqosimov8363 Рік тому +2

    👍

  • @ТауекелАлтынбеков-о9ъ
    @ТауекелАлтынбеков-о9ъ 10 місяців тому

    Третий референс тип - это Delegate!

    • @bwswift
      @bwswift  10 місяців тому

      Нет!

    • @ТауекелАлтынбеков-о9ъ
      @ТауекелАлтынбеков-о9ъ 10 місяців тому

      @@bwswift Функции

    • @bwswift
      @bwswift  10 місяців тому

      @@ТауекелАлтынбеков-о9ъ этот я назвал! Не считается!

    • @ТауекелАлтынбеков-о9ъ
      @ТауекелАлтынбеков-о9ъ 10 місяців тому

      @@bwswift Акторы

    • @m.d.2029
      @m.d.2029 10 місяців тому

      @@ТауекелАлтынбеков-о9ъ
      В Swift классы, акторы и замыкания являются ссылочными типами.

  • @Lucktimerfull22
    @Lucktimerfull22 Рік тому

    Самая сложная тема, порой не понятно в какой последовательности ARC удаляет классы….

    • @bwswift
      @bwswift  Рік тому

      на каком первая пропала стронг ссылка тот и удаляется первым и дальше каскадом

  • @LilSweep
    @LilSweep Рік тому

    И ф-ции 3ий тип.

  • @qyrgyzca
    @qyrgyzca Рік тому +1

    ✊🏻

  • @LilSweep
    @LilSweep Рік тому

    18.4 ярда тб может поддерживать операционка на 64 битах 😂

  • @rinata9099
    @rinata9099 Рік тому

    Пора уже свою школу открывать )

  • @etronik3339
    @etronik3339 Рік тому +7

    Коротко о Reference Cycle - Цирк уехал, клоуны остались

    • @bwswift
      @bwswift  Рік тому

      Хахаха! 🔥

  • @borispapush5448
    @borispapush5448 Рік тому

    Привет из Москвы 💙💛
    Печально, что ваши новые видео выходят на украинском языке и недоступны для понимания россиянам и многим другим жителям СНГ :(

    • @bwswift
      @bwswift  Рік тому +10

      Може це знак що пора починати вчити українську?

    • @kav04
      @kav04 Рік тому

      я на видео у Максима Дивертидо подучился понимать украинскую мову @@bwswift

  • @yrashkaaa
    @yrashkaaa 8 місяців тому +1

    2 в 64 степени - 1 = 18 446 744 073 709 551 615. Или другими словами: Восемнадцать квинтиллионов четыреста сорок шесть квадриллионов семьсот сорок четыре триллиона семьдесят три миллиарда семьсот девять миллионов пятьсот пятьдесят одна тысяча шестьсот пятнадцать.

    • @bwswift
      @bwswift  8 місяців тому

      Всего-то

  • @MaxTymchii
    @MaxTymchii Рік тому

    Заціни прикол.
    class A {
    deinit {
    print("Deinit")
    }
    }
    var a: A? = A()
    print("\(CFGetRetainCount(a))")
    a = nil
    Як думаєш, яке число буде в print?
    Знаєш чому так?

    • @TheKarleone77
      @TheKarleone77 Рік тому

      А чому так?

    • @MaxTymchii
      @MaxTymchii Рік тому

      Треба гуглити, але я не знаю чому так індексація починається@@TheKarleone77