Спасибо большое за лекцию! Как писали уже ранее на одном дыхании посмотрела. Я знала, что здесь будет что-то, что меня удивит, и так и есть - потрясающе полный и интересный материал по кложурам. Я не знала половину материала, было очень полезно. Мне кажется, чуть изменился способ подачи информации по сравнению с первыми видео этого курса. Очень нравится, особенно рубрика "Это спрашивают на собеседование" и "Этого не знают даже senior". Очень много полезной информации в доступном формате. Действительно, то, что вы делаете на просторе CZcams, на голову выше и не сравнится с материалами, которые дают на курсах (есть с чем сравнить). Формат 1ч20м чистой информации просто удивляет, и хочется, чтобы ваша мотивация только росла. Желаю очень много подписок на Patreonе.
Вячеслав, мне нравится что в одном видео вы объединяете всё по теме, в дном видео по таймкодам отыскать проще(как мне кажется) для повторения, чем ещё и по разным видео искать.💙💛
Спасибо, Слава! Освежаю теорию, готовясь к собесам и вспоминаю курсы Лёши Скутаренко. Прям по простому, с примерами и визуализацией. Думаю для молодых специалистов это топ. Было бы еще неплохо обзавестить каким-то комьюнити, в котором студенты смогут выкатывать свои домашние задания и обсуждать их.
Ответы: -3-ий тип reference type - actor (буду честен, сначала ответил функция, но кложура это и есть функция, потому что в интернете пишут про классы, функции и кложуры - в основном, например в статьях на хабре, понимаю, Хабр не то место где нужно черпать знания. Но начинающему разрабу всегда тяжко в фильтрации материалов, он не понимает, что хорошо, а что плохо, как в моем случае. но спасибо что есть Вы!); -2^64 это 16 Эксабайтов. 14:00 Слепок оперативной памяти и кладет его на диск - просто копию оперативки? извините за глупый вопрос, вот не понятно конкретно слепок чего и что подразумевается под этим? не могу представить абстрактно понял что нужно глянуть занятия 13-16. а по факту лучше все пересмотреть. после того, как есть некое понимание в разработке, смотреть ваши толковые ролики очень и очень полезно. Дякую и Рахмет за проделанный труд! 1час 20 минут и 57 секунд - пролетают не заметно. особенно, когда в лекции полезна каждая минута.
Мой оффлайн курс был рассчитан на Стронг Джуниоров, что бы после курса им не хватало только коммерческого опыта что бы назваться мидлом. Поэтому так и получается
Спасибо, это одна из лучших лекций по ARC! Можно еще рассказать зачем все-таки два вида слабых ссылок (weak и unowned). Если они оба выполняют одинаковую работу, то в чем профит, кроме опциональности? unowned потребляет меньше ресурсов?
Спасибо за лекцию! Достаточно подробно описана работа именно с объектами. Жаль правда не копнули немного в глубину, по типу того как именно удаляются weak и unowned ссылки, сразу они удаляются или какой у них жизненный цикл удаления, Side Tables и так далее. Но подача материала очень прияная. Еще раз спасибо!
Третьим ссылочным типом может являтся структура если ее передать в метод с использованием аргумента inout. В таком случае передается ссылка а не копия.
Интересно, а что произойдет, если два класса будут ссылаться друг на друга слабыми ссылками? Классы освободятся раньше времени? Код в playground выполняется одинаково. В чем тогда разница? Почему бы повсеместно не использовать weak? Или дело все чисто в неудобстве использования из-за опционалов?
Тут все правильно. Сам объект находится в куче, но ссылка на этот объект находится в стеке. Мы работаем со ссылками которые лежат в стеке, но эти ссылки ссылаются на объекты в куче.
А функция или замыкание внутри структуры хранится вместе со структурой в стеке или в куче? И наоборот: где хранятся int и string, принадлежащие классу, вместе с ним в куче или все же в стеке?
если экземпляр типа значения является частью экземпляра ссылочного типа, то значение сохраняется в куче вместе с экземпляром ссылочного типа. Например, структура сама по себе хранится в стеке, но если эта структура расположена в классе, то так как класс хранится в куче, то и структура будет сохранена в куче.
Зависит от версии Свифта, в последних да. Эта функциональность так же дает возможность в будущем добавить сторед проперти в extension, но не думаю что это в ближайшем будущем допилят.
Вячеслав, если не трудно, скажите пожалуйста, если ARC контролирует память для ссылочных типов (считает ссылки), то чем контролируются тип значения, когда система понимает что нужно удалить их или она удаляет их, когда они отработали в своем скоупе?
@@IlnurMugaev во время выхода фичи - да. Но они продолжали работать над back-deployment что бы это работало с 13+, но я не следил за этими изменениями после релиза. Так что теоретически уже может работать и с 13+ если доделали.
2 в 64 степени - 1 = 18 446 744 073 709 551 615. Или другими словами: Восемнадцать квинтиллионов четыреста сорок шесть квадриллионов семьсот сорок четыре триллиона семьдесят три миллиарда семьсот девять миллионов пятьсот пятьдесят одна тысяча шестьсот пятнадцать.
Заціни прикол. class A { deinit { print("Deinit") } } var a: A? = A() print("\(CFGetRetainCount(a))") a = nil Як думаєш, яке число буде в print? Знаєш чому так?
Доклад Максима про value types
czcams.com/video/8L5cUiV1qDo/video.html
Поддержите канал на патреоне!
www.patreon.com/bwswift
почти полтора часа нереально крутого урока! Такого точно не расскажут на курсах. Спасибо большое
Благодарю!
Лучшее объяснение данной темы которое я слышал! Большое спасибо)
Благодарю!
Спасибо большое за лекцию! Как писали уже ранее на одном дыхании посмотрела. Я знала, что здесь будет что-то, что меня удивит, и так и есть - потрясающе полный и интересный материал по кложурам. Я не знала половину материала, было очень полезно.
Мне кажется, чуть изменился способ подачи информации по сравнению с первыми видео этого курса. Очень нравится, особенно рубрика "Это спрашивают на собеседование" и "Этого не знают даже senior". Очень много полезной информации в доступном формате.
Действительно, то, что вы делаете на просторе CZcams, на голову выше и не сравнится с материалами, которые дают на курсах (есть с чем сравнить). Формат 1ч20м чистой информации просто удивляет, и хочется, чтобы ваша мотивация только росла. Желаю очень много подписок на Patreonе.
Благодарю за поддержку и ваш тёплый комментарий!
Вячеслав вы самый лучший!Лучше вас никто не учит!
Спасибо!
Слава, спасибо тебе за лекцию, все как всегда, на высшем уровне!
Дякую!
Самый лучший канал по iOS разработке, который я видел. Спасибо большое!
❤️
Дякую за вичерпний матеріал, та незрівнянну подачу!!!
❤️
невероятно классная лекция
канал тоже поражает полезностью
Все очень просто и очень интересно
Огромное вам спасибо за ваш труд !!!!
❤️
Спасибо, Вячеслав за отличный материал!
👍
Вячеслав, мне нравится что в одном видео вы объединяете всё по теме, в дном видео по таймкодам отыскать проще(как мне кажется) для повторения, чем ещё и по разным видео искать.💙💛
Дякую!
Отличная подача материала! Пожалуй, самые интересные уроки по Свифту в рунете
Дуже розгорнута відповідь на цю тему. Гарні прикладі. Лекція проглядається на одному диханні.
Дякую!
Офигенная подача!
👍
Круто, професійно, доступно! Дякую!
Дякую за комент!
Спасибо, Слава! Освежаю теорию, готовясь к собесам и вспоминаю курсы Лёши Скутаренко. Прям по простому, с примерами и визуализацией. Думаю для молодых специалистов это топ.
Было бы еще неплохо обзавестить каким-то комьюнити, в котором студенты смогут выкатывать свои домашние задания и обсуждать их.
Благодарю за комментарий, есть чат в телеграмме, там можно задать вопросы и получить ответы
Лучший канал по swift!)спасибо за уроки!!!
Спасибо за комментарий !
Ответы:
-3-ий тип reference type - actor (буду честен, сначала ответил функция, но кложура это и есть функция, потому что в интернете пишут про классы, функции и кложуры - в основном, например в статьях на хабре, понимаю, Хабр не то место где нужно черпать знания. Но начинающему разрабу всегда тяжко в фильтрации материалов, он не понимает, что хорошо, а что плохо, как в моем случае. но спасибо что есть Вы!);
-2^64 это 16 Эксабайтов.
14:00 Слепок оперативной памяти и кладет его на диск - просто копию оперативки? извините за глупый вопрос, вот не понятно конкретно слепок чего и что подразумевается под этим? не могу представить абстрактно
понял что нужно глянуть занятия 13-16. а по факту лучше все пересмотреть.
после того, как есть некое понимание в разработке, смотреть ваши толковые ролики очень и очень полезно.
Дякую и Рахмет за проделанный труд! 1час 20 минут и 57 секунд - пролетают не заметно. особенно, когда в лекции полезна каждая минута.
Лучшее объяснение ARC👍Тысяча благодарностей☺
👍
Спасибо большое, за лекцию! Удачи в развитии канала :)
Благодарю!
Большое спасибо за Ваш информативный урок!
И вам спасибо!
Прекрасные 80 минут!
👍
Лучшее объяснение arc! Спасибо!
❤️
Спасибо за труд, очень современно и доходчиво! Развития каналу!
Благодарю
Спасибо за материал. Всегда очень доходчиво.
Третий вариант ссылочного типа в swift это, скорее всего, Indirect enum,
Нет. Подсказку ищи в разделе документации concurrency
Отличный урок! Большое спасибо
Благодарю!
Лучший, спасибо огромное!
👍
спасибо большое ,2 месяца изучаю Свифт , вы объясните проще всех))
👍
Оставляю комментарий в поддержку канала)
Благодарю!
Длинные лекции топ
Благодарю!
крута лекція, дякую !
І вам дякую!
Шикарный контент. Наткнулся случайно на deinit видео. Молодец. Спасибо
👍
Очередное спасибо! И только успехов вам!
53:02
почему когда pat = nil, все так вызвался deinit, если есть strong reference cycle между command и pat ?
когда-нибудь скажут: какие-то сильные джуны пошли
а им ответят: мы учились у В’ячеслав Білий
Мой оффлайн курс был рассчитан на Стронг Джуниоров, что бы после курса им не хватало только коммерческого опыта что бы назваться мидлом. Поэтому так и получается
Спасибо за Ваши талантливые уроки! А про акторы сможете также понятно рассказать?
В акторах нет ничего сложного :) но эта тема для отдельного плейлиста по многопоточности
Кака же ясно объяснили, спасиииибо
👍
Спасибо за очередное невероятно познавательное видео. Листал сообщения, но не нашел такой же мысли: третий ссылочный тип это Функции высшего порядка?
наверное после лекции внимание рассеялось, увидал правильный ответ - Актор из wwdc21
Не
Спасибо, это одна из лучших лекций по ARC! Можно еще рассказать зачем все-таки два вида слабых ссылок (weak и unowned). Если они оба выполняют одинаковую работу, то в чем профит, кроме опциональности? unowned потребляет меньше ресурсов?
Производительность. Unowned быстрее
На одном дыхании 😊
Спасибо за лекцию! Очень интересно и понятно, рада, что нашла ваш канал, дай бог вам здоровья ! Слава Украине
Благодарю! Героям слава!
Поддерживаю предыдущего оратора
@@emilsh7 👍
Спасибо за лекцию! Достаточно подробно описана работа именно с объектами. Жаль правда не копнули немного в глубину, по типу того как именно удаляются weak и unowned ссылки, сразу они удаляются или какой у них жизненный цикл удаления, Side Tables и так далее. Но подача материала очень прияная. Еще раз спасибо!
Копнуть в глубину это +2ч к длине видео
посмотрел Максима, очень интересно.
👍
3й тип акторы?
Да!
Третьим ссылочным типом может являтся структура если ее передать в метод с использованием аргумента inout. В таком случае передается ссылка а не копия.
Структура в таком варианте действительно передается по ссылке, но это не делает ее ссылочным типом. А я спрашиваю именно за еще один тип данных
Интересно, а что произойдет, если два класса будут ссылаться друг на друга слабыми ссылками? Классы освободятся раньше времени? Код в playground выполняется одинаково. В чем тогда разница? Почему бы повсеместно не использовать weak? Или дело все чисто в неудобстве использования из-за опционалов?
Небольшая ремарка, что стэк находится не в ОЗУ, а в кэш-памяти процессора и могут быть помещены в Heap
👍
Top like Always 🎉💪🏼
Спасибо!
👍
Спасибо большое за такое объемное видео!
Подскажите, вы занимаетесь менторством?
Да, но сейчас поставил на паузу
лекция огонь
🔥
Просто супер! 👍👍👍
👍
спасибо!
👍
26:00 В стеке? Референс типы же вроде хранятся в куче
Тут все правильно. Сам объект находится в куче, но ссылка на этот объект находится в стеке. Мы работаем со ссылками которые лежат в стеке, но эти ссылки ссылаются на объекты в куче.
👍
Не могли бы уточнить, методы/функции хранятся в сегменте TEXT памяти и в каком виде?
А функция или замыкание внутри структуры хранится вместе со структурой в стеке или в куче? И наоборот: где хранятся int и string, принадлежащие классу, вместе с ним в куче или все же в стеке?
Смотрите доклад Макса в закрепленном коментарии
если экземпляр типа значения является частью экземпляра ссылочного типа, то значение сохраняется в куче вместе с экземпляром ссылочного типа. Например, структура сама по себе хранится в стеке, но если эта структура расположена в классе, то так как класс хранится в куче, то и структура будет сохранена в куче.
Вячеслав, спасибо большое за огромный пласт работы! Очень полезно!
А где можно посмотреть про диспечиризацию?
Еще не снял
Спасибо !!!!
👍
Есть мнение, что weak ссылка ссылается не на Heap а на Side Table, так ли это?
Зависит от версии Свифта, в последних да. Эта функциональность так же дает возможность в будущем добавить сторед проперти в extension, но не думаю что это в ближайшем будущем допилят.
Вячеслав, если не трудно, скажите пожалуйста, если ARC контролирует память для ссылочных типов (считает ссылки), то чем контролируются тип значения, когда система понимает что нужно удалить их или она удаляет их, когда они отработали в своем скоупе?
Посмотрите как устроен стек. Когда со стека что-то уходит - оно умирает. Жизнь value types контролируется принципом работы стека.
@@bwswift Благодарю
Жаль что не была затронута тема Side table
Это очень глубоко, не в курсе для начинающих
Спасибо! Hearthstone по итогу с утечкой или не правильно понял?)
Да, он был с утечкой, когда я в него играл пару лет назад.
3 тип - функции?
Это кложуры, их уже назвал
и тот ref-type, который я напишу в комментарии: функция)
И будеш не прав :)
Стосовно третього референс-типу, то це здається AnyObject
Не вгадав.
@@bwswift я загуглив і знайшов що до референс-типу ще додають функції, але ж це майже те саме що і замикання
Вячеслав, добрый день. Когда может быть куча не одна, а несколько?
Відповів в телеграм каналі
t.me/bwswift/442
Спасибо, присоединился)@@bwswift
✊🏻
👍
Третий референс тип - это Delegate!
Нет!
@@bwswift Функции
@@user-hx9fu1tb9k этот я назвал! Не считается!
@@bwswift Акторы
@@user-hx9fu1tb9k
В Swift классы, акторы и замыкания являются ссылочными типами.
а GCD будет?)
Будет но не скоро
Reference Type - Classes, Closures, Protocols
One more
@@bwswift Functions
@@vladloktionov5860 functions = closures. So, one more!
рекурсия@@bwswift
@@AlexandrRudenok Актор!
3-й reference type - indirect enum?
Не.
@@bwswift аргументы inout?
@@IlnurMugaev не. Прдсказку ищи в разделе документации concurrency
@@bwswift ага нашел, actor вроде используется с версии Swift 5.5, это, насколько я понял, минимальная версия iOS 15 должна быть?
@@IlnurMugaev во время выхода фичи - да. Но они продолжали работать над back-deployment что бы это работало с 13+, но я не следил за этими изменениями после релиза. Так что теоретически уже может работать и с 13+ если доделали.
In Swift, classes, actors, and closures are all reference types. upd: приєднуюсь до всіх вдячних людей))
Все вірно!
Самая сложная тема, порой не понятно в какой последовательности ARC удаляет классы….
на каком первая пропала стронг ссылка тот и удаляется первым и дальше каскадом
И ф-ции 3ий тип.
➖
18.4 ярда тб может поддерживать операционка на 64 битах 😂
Пора уже свою школу открывать )
😂
Коротко о Reference Cycle - Цирк уехал, клоуны остались
Хахаха! 🔥
Привет из Москвы 💙💛
Печально, что ваши новые видео выходят на украинском языке и недоступны для понимания россиянам и многим другим жителям СНГ :(
Може це знак що пора починати вчити українську?
я на видео у Максима Дивертидо подучился понимать украинскую мову @@bwswift
2 в 64 степени - 1 = 18 446 744 073 709 551 615. Или другими словами: Восемнадцать квинтиллионов четыреста сорок шесть квадриллионов семьсот сорок четыре триллиона семьдесят три миллиарда семьсот девять миллионов пятьсот пятьдесят одна тысяча шестьсот пятнадцать.
Всего-то
Заціни прикол.
class A {
deinit {
print("Deinit")
}
}
var a: A? = A()
print("\(CFGetRetainCount(a))")
a = nil
Як думаєш, яке число буде в print?
Знаєш чому так?
А чому так?
Треба гуглити, але я не знаю чому так індексація починається@@TheKarleone77