Тёмный

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

В’ячеслав Білий
Подписаться 6 тыс.
Просмотров 4,3 тыс.
50% 1

#extensions #swift
Присоединяйтесь к сообществу!
Телеграмм канал: t.me/bwswift
Телеграмм чат: t.me/bwswiftchat
Поддержите канал на патреоне!
/ bwswift
Подписывайтесь в соц сетях:
LinkedIn - / slavabeliy
Twitter - / vycheslavbeliy
Facebook - www.facebook.c...
Instagram - / belyi_viacheslav

Опубликовано:

 

10 сен 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 59   
@bwswift
@bwswift Год назад
Поддержите канал на патреоне! www.patreon.com/bwswift
@magomedn2057
@magomedn2057 Год назад
Сразу лайк!
@valikkashkalda605
@valikkashkalda605 11 месяцев назад
Дуже дякую! Подобається що детально розповідаєш, і головне що ця інформація корисна не тільки починаючим розробникам а і тим хто вже давно працює, дуже радий шо мені тебе порекомендували!
@bwswift
@bwswift 11 месяцев назад
Дякую за теплий відгук!
@user-zs5tn9xv2o
@user-zs5tn9xv2o Год назад
оч круто это мой третий марафон по свифту и так доступно ни кто не доводит материал!Супер!
@bwswift
@bwswift Год назад
Спасибо!
@nikitakoniukh709
@nikitakoniukh709 7 месяцев назад
Слухаю у процесі підготовки до інтервʼю. Чотири роки розробки, а досі багато чого нового для себе у кожній лекції. Дуже дякую тобі за таку важку працю.
@bwswift
@bwswift 7 месяцев назад
Дякую за відгук! Я душу вклав в ці заняття :)
@lehaPsheno
@lehaPsheno Год назад
Подача,картинки,обьяснения 100 из 100,спасибо за потраченное на нас время)
@bwswift
@bwswift Год назад
Супер! Заходите еще!
@dqueenprinsees
@dqueenprinsees Год назад
Я думаю, может быть для добавления статических свойств и методов в extension следует использовать ключевое слово static, потому что оно указывает на то, что свойство или метод принадлежит самому типу и не может быть переопределено в подклассах.
@bwswift
@bwswift Год назад
Схватываете на лету!
@vitalijsminins8305
@vitalijsminins8305 11 месяцев назад
статическую хранимую переменную "class var"(которая дает возможность переопределения в дочернем классе) мы не можем использовать в extension, однако метод "class func"(который тоже дает возможность переопределиться в дочернем классе) мы можем использовать. У меня не сходится )
@henessy3848
@henessy3848 3 дня назад
​@@vitalijsminins8305 неправильное объяснение, при всём уважении к Вячеславу, странно, что он этого не заметил и в самом видеоролике тоже указал на то, что тут всё завязано конкретно на том, что мы определяем avgLifeDuration в extension, но дело тут совсем не в этом. ваш комментарий старый и вряд-ли я вам помогу, но хотя бы помогу тем, кто наткнется на мой комментарий в дальнейшем. в общем, дело тут в том, что ключевое слово class подразумевает, что мы можем переопределять свойства и методы, помеченные этим словом, в сабклассах. но ключевой момент состоит в том, что хранимые свойства(stored property) мы переопределять не можем, именно поэтому avgLifeDuration(хранимое свойство/stored property) не может быть помечено ключевым слово class, но может быть помечено ключевым словом static. оба ключевых слова определяет свойство, как свойство типа, т.е свойство, которое может быть использовано исключительно на самом типе, а не на объектах, но static не позволяет переопределять эти свойства в сабклассах. upd. как уже говорил сам Вячеслав в ответе к одному из комментариев, в документации упущен момент о том, что мы всё таким можем объявить в extension обычное хранимое свойство, ЕСЛИ оно помечено ключевым словом static, это к вопросу о том, что кого-то мог смутить тот факт, что мы каким-то образом объявляем хранимое свойство в extension, пусть оно и помечено, как static надеюсь, кому-то это поможет
@takedaheroku
@takedaheroku 8 месяцев назад
Дякую за лекцію - дуже цікавий момент про static property та ієрархію. Та ще що lazy не можно в extensions, але я спочатку думав що можна)
@bwswift
@bwswift 8 месяцев назад
❤️
@viktorarno3937
@viktorarno3937 Год назад
Большое спасибо за новое видео. 👍
@bwswift
@bwswift Год назад
И вам спасибо за комментарий!
@AdamTabiev
@AdamTabiev 11 месяцев назад
Спасибо большое! Легко и непринуждённо, подан материал!
@bwswift
@bwswift 11 месяцев назад
👍
@Moonwalker95
@Moonwalker95 8 месяцев назад
Большое спасибо Вам! Очень крутой канал, почти все основы пересмотрел у Вас, еще много интересного предстоит увидеть)
@bwswift
@bwswift 8 месяцев назад
❤️
@bulgakov1991
@bulgakov1991 Год назад
Как всегда супер, спасибо)
@bwswift
@bwswift Год назад
Благодарю!
@user-jf8is2vi1w
@user-jf8is2vi1w Год назад
Супер, з Вашим поясненням тема зайшла легше👍👌
@bwswift
@bwswift Год назад
Дякую! Вже працюю над протоколами
@user-iOSnick-dev
@user-iOSnick-dev 10 месяцев назад
Спасибо и больше видео!
@bwswift
@bwswift 10 месяцев назад
❤️
@olga1709
@olga1709 Год назад
Огромное спасибо за урок!
@bwswift
@bwswift Год назад
👍
@larinvae
@larinvae Год назад
Вячеслав, спасибо за лекцию!!! По поводу lazy properties - я была уверена, что все lazy свойства являются хранимыми, поэтому lazy property нельзя добавить в extension. Computed property не могут быть lazy, потому что они каждый раз вычисляются при обращении к ним… а lazy property инициализируются только 1 раз и далее используются как обычные stored property. Разве не так? Или я ошибаюсь?
@bwswift
@bwswift Год назад
Все правильно
@user-zj4ms4kp2v
@user-zj4ms4kp2v Год назад
Класс!!! Спасибо за видео!)
@bwswift
@bwswift Год назад
И вам спасибо за комментарий!
@user-xi9qi9sw5q
@user-xi9qi9sw5q Год назад
Отличный канал и подача материала! 🔥
@bwswift
@bwswift Год назад
Спасибо за поддержку!
@yaliisk5928
@yaliisk5928 Год назад
Спасибо за видео. По идее lazy computed property можно добавлять в расширения.
@bwswift
@bwswift Год назад
Пробовал в плейграунде?
@dqueenprinsees
@dqueenprinsees Год назад
Предположение на вопрос в конце видео: Расширение не имеет собственного хранилища для хранения состояния свойств.
@bwswift
@bwswift Год назад
👍
@annaruslanovna6115
@annaruslanovna6115 11 месяцев назад
можешь поподробнее написать 🙏
@dqueenprinsees
@dqueenprinsees 11 месяцев назад
@@annaruslanovna6115 В Swift, расширения предназначены для добавления новых методов и вычисляемых свойств существующим типам данных. В расширения нельзя добавлять хранимые свойства (stored properties) или изменять существующие. Это ограничение сделано для обеспечения безопасности и предсказуемости кода. Если тебе необходимо добавить хранимое свойство к типу данных, ты должна делать это в основном коде, а не через расширение.
@user-xe5kt2bu6w
@user-xe5kt2bu6w Год назад
Спасибо!
@bwswift
@bwswift Год назад
👍
@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
@Le_schiffer
@Le_schiffer Год назад
Ещё одна причина, по которой не стоит в экстеншене переопределять @objc dymanic функции - тогда method dispatch выбирает самый медленный тип диспетчеризации, который в разы медленнее обычной статической диспетчеризации, что в больших и нагруженных проектах не есть гуд. Да и просто лид по рукам надаёт
@bwswift
@bwswift Год назад
👍
@shurale85
@shurale85 10 месяцев назад
в документации сказано, что в расширениях можно определять только вычисляемые проперти объекта или типа. А вы объявили хранимую. пусть даже статическую. Про нее не упомяналось в документации
@bwswift
@bwswift 10 месяцев назад
Все верно, в документации єто упущено
@vitalijsminins8305
@vitalijsminins8305 11 месяцев назад
немного непонятно type stored property - это тоже stored property (только type), однако ее можно использовать в extension. Тоесть получается мы не можем использовать в extension только instance stored properties.
@bwswift
@bwswift 11 месяцев назад
да
@hashcat5721
@hashcat5721 Год назад
31:28 lazy в extension не сможет определить диспечеризацию ? lazy вызывается в момент обращения , но если как и с классом мы сделаем ее static то ошибка исчезнит или просто уберем lazy тут пригодить предыдщие уроки про проперти
@bwswift
@bwswift Год назад
Тут ключевой вопрос, что не можно объявлять в екстеншенах и как это связанно с lazy?
@hashcat5721
@hashcat5721 Год назад
@@bwswift в Extension можна оверыйдить.
@hashcat5721
@hashcat5721 Год назад
27:31 наверное потому что мы можем переопределить проперти подклассом ?
@bwswift
@bwswift Год назад
Хороший вариант!
@SergSphinx
@SergSphinx Год назад
Агинь))
Далее
Занятие 27 - ООП, Введение
1:05:02
Просмотров 5 тыс.