№33 - Extensions в swift | Что от вас скрывают!?

แชร์
ฝัง
  • เผยแพร่เมื่อ 28 ก.ย. 2024
  • #extensions #swift
    Присоединяйтесь к сообществу!
    Телеграмм канал: t.me/bwswift
    Телеграмм чат: t.me/bwswiftchat
    Поддержите канал на патреоне!
    / bwswift
    Подписывайтесь в соц сетях:
    LinkedIn - / slavabeliy
    Twitter - / vycheslavbeliy
    Facebook - www.facebook.c...
    Instagram - / belyi_viacheslav

ความคิดเห็น • 58

  • @bwswift
    @bwswift  ปีที่แล้ว

    Поддержите канал на патреоне!
    www.patreon.com/bwswift

  • @lehaPsheno
    @lehaPsheno ปีที่แล้ว +1

    Подача,картинки,обьяснения 100 из 100,спасибо за потраченное на нас время)

    • @bwswift
      @bwswift  ปีที่แล้ว

      Супер! Заходите еще!

  • @AdamTabiev
    @AdamTabiev 11 หลายเดือนก่อน

    Спасибо большое! Легко и непринуждённо, подан материал!

    • @bwswift
      @bwswift  11 หลายเดือนก่อน

      👍

  • @user-iOSnick-dev
    @user-iOSnick-dev 10 หลายเดือนก่อน

    Спасибо и больше видео!

    • @bwswift
      @bwswift  10 หลายเดือนก่อน

      ❤️

  • @yaliisk5928
    @yaliisk5928 ปีที่แล้ว

    Спасибо за видео.
    По идее lazy computed property можно добавлять в расширения.

    • @bwswift
      @bwswift  ปีที่แล้ว

      Пробовал в плейграунде?

  • @ЕленаРусских-и2ч
    @ЕленаРусских-и2ч ปีที่แล้ว

    Отличный канал и подача материала! 🔥

    • @bwswift
      @bwswift  ปีที่แล้ว

      Спасибо за поддержку!

  • @dqueenprinsees
    @dqueenprinsees ปีที่แล้ว +5

    Я думаю, может быть для добавления статических свойств и методов в extension следует использовать ключевое слово static, потому что оно указывает на то, что свойство или метод принадлежит самому типу и не может быть переопределено в подклассах.

    • @bwswift
      @bwswift  ปีที่แล้ว +2

      Схватываете на лету!

    • @vitalijsminins8305
      @vitalijsminins8305 11 หลายเดือนก่อน +1

      статическую хранимую переменную "class var"(которая дает возможность переопределения в дочернем классе) мы не можем использовать в extension, однако метод "class func"(который тоже дает возможность переопределиться в дочернем классе) мы можем использовать. У меня не сходится )

  • @ocean_s_friend
    @ocean_s_friend 3 หลายเดือนก่อน

    lazy це computed , а extention працює тільки з stored properties =)

    • @bwswift
      @bwswift  3 หลายเดือนก่อน

      Майже вірно, давай ще раз

    • @ocean_s_friend
      @ocean_s_friend 3 หลายเดือนก่อน

      @@bwswift🤦🏻‍♂️ ой навпаки ) lazy це stored, а extension працює тільки з computed

  • @hashcat5721
    @hashcat5721 ปีที่แล้ว

    31:28 lazy в extension не сможет определить диспечеризацию ? lazy вызывается в момент обращения , но если как и с классом мы сделаем ее static то ошибка исчезнит или просто уберем lazy тут пригодить предыдщие уроки про проперти

    • @bwswift
      @bwswift  ปีที่แล้ว

      Тут ключевой вопрос, что не можно объявлять в екстеншенах и как это связанно с lazy?

    • @hashcat5721
      @hashcat5721 ปีที่แล้ว

      @@bwswift в Extension можна оверыйдить.

  • @Konstantin-y8i
    @Konstantin-y8i ปีที่แล้ว

    Спасибо!

  • @larinvae
    @larinvae ปีที่แล้ว +2

    Вячеслав, спасибо за лекцию!!! По поводу lazy properties - я была уверена, что все lazy свойства являются хранимыми, поэтому lazy property нельзя добавить в extension. Computed property не могут быть lazy, потому что они каждый раз вычисляются при обращении к ним… а lazy property инициализируются только 1 раз и далее используются как обычные stored property. Разве не так? Или я ошибаюсь?

    • @bwswift
      @bwswift  ปีที่แล้ว +1

      Все правильно

  • @valikkashkalda605
    @valikkashkalda605 11 หลายเดือนก่อน +1

    Дуже дякую! Подобається що детально розповідаєш, і головне що ця інформація корисна не тільки починаючим розробникам а і тим хто вже давно працює, дуже радий шо мені тебе порекомендували!

    • @bwswift
      @bwswift  11 หลายเดือนก่อน

      Дякую за теплий відгук!

  • @dqueenprinsees
    @dqueenprinsees ปีที่แล้ว +2

    Предположение на вопрос в конце видео:
    Расширение не имеет собственного хранилища для хранения состояния свойств.

    • @bwswift
      @bwswift  ปีที่แล้ว

      👍

    • @annaruslanovna6115
      @annaruslanovna6115 ปีที่แล้ว

      можешь поподробнее написать 🙏

    • @dqueenprinsees
      @dqueenprinsees ปีที่แล้ว

      @@annaruslanovna6115 В Swift, расширения предназначены для добавления новых методов и вычисляемых свойств существующим типам данных.
      В расширения нельзя добавлять хранимые свойства (stored properties) или изменять существующие. Это ограничение сделано для обеспечения безопасности и предсказуемости кода.
      Если тебе необходимо добавить хранимое свойство к типу данных, ты должна делать это в основном коде, а не через расширение.

  • @Пуписас
    @Пуписас ปีที่แล้ว +2

    оч круто это мой третий марафон по свифту и так доступно ни кто не доводит материал!Супер!

    • @bwswift
      @bwswift  ปีที่แล้ว

      Спасибо!

  • @takedaheroku
    @takedaheroku 9 หลายเดือนก่อน

    Дякую за лекцію - дуже цікавий момент про static property та ієрархію. Та ще що lazy не можно в extensions, але я спочатку думав що можна)

    • @bwswift
      @bwswift  9 หลายเดือนก่อน

      ❤️

  • @nikitakoniukh709
    @nikitakoniukh709 8 หลายเดือนก่อน

    Слухаю у процесі підготовки до інтервʼю. Чотири роки розробки, а досі багато чого нового для себе у кожній лекції. Дуже дякую тобі за таку важку працю.

    • @bwswift
      @bwswift  8 หลายเดือนก่อน +1

      Дякую за відгук! Я душу вклав в ці заняття :)

  • @viktorarno3937
    @viktorarno3937 ปีที่แล้ว +2

    Большое спасибо за новое видео. 👍

    • @bwswift
      @bwswift  ปีที่แล้ว

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

  • @vitalijsminins8305
    @vitalijsminins8305 11 หลายเดือนก่อน

    немного непонятно type stored property - это тоже stored property (только type), однако ее можно использовать в extension. Тоесть получается мы не можем использовать в extension только instance stored properties.

    • @bwswift
      @bwswift  11 หลายเดือนก่อน

      да

  • @shurale85
    @shurale85 11 หลายเดือนก่อน

    в документации сказано, что в расширениях можно определять только вычисляемые проперти объекта или типа. А вы объявили хранимую. пусть даже статическую. Про нее не упомяналось в документации

    • @bwswift
      @bwswift  11 หลายเดือนก่อน

      Все верно, в документации єто упущено

  • @Moonwalker95
    @Moonwalker95 8 หลายเดือนก่อน

    Большое спасибо Вам! Очень крутой канал, почти все основы пересмотрел у Вас, еще много интересного предстоит увидеть)

    • @bwswift
      @bwswift  8 หลายเดือนก่อน

      ❤️

  • @Le_schiffer
    @Le_schiffer ปีที่แล้ว

    Ещё одна причина, по которой не стоит в экстеншене переопределять @objc dymanic функции - тогда method dispatch выбирает самый медленный тип диспетчеризации, который в разы медленнее обычной статической диспетчеризации, что в больших и нагруженных проектах не есть гуд. Да и просто лид по рукам надаёт

  • @bulgakov1991
    @bulgakov1991 ปีที่แล้ว +1

    Как всегда супер, спасибо)

    • @bwswift
      @bwswift  ปีที่แล้ว

      Благодарю!

  • @SergSphinx
    @SergSphinx ปีที่แล้ว

    Агинь))

  • @hashcat5721
    @hashcat5721 ปีที่แล้ว

    27:31 наверное потому что мы можем переопределить проперти подклассом ?

    • @bwswift
      @bwswift  ปีที่แล้ว

      Хороший вариант!

  • @olga1709
    @olga1709 ปีที่แล้ว

    Огромное спасибо за урок!

  • @АлександрБрут-м9г
    @АлександрБрут-м9г ปีที่แล้ว

    Класс!!! Спасибо за видео!)

    • @bwswift
      @bwswift  ปีที่แล้ว

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

  • @ТаняГарбарчук-м1ъ
    @ТаняГарбарчук-м1ъ ปีที่แล้ว

    Супер, з Вашим поясненням тема зайшла легше👍👌

    • @bwswift
      @bwswift  ปีที่แล้ว

      Дякую! Вже працюю над протоколами