Протокол CaseIterable
Протокол CaseIterable позволяет получать все значения типа.
В первом примере, когда мы хотим получить все города из перечисления City, нам придется вводить их вручную. Представьте, если бы в этом перечислении были сотни тысяч городов!
С помощью свойства allCases, предоставляемого протоколом CaseIterable, мы можем получить массив всех City. Это может значительно сэкономить время.
Протокол CaseIterable позволяет получать все значения типа.
В первом примере, когда мы хотим получить все города из перечисления City, нам придется вводить их вручную. Представьте, если бы в этом перечислении были сотни тысяч городов!
С помощью свойства allCases, предоставляемого протоколом CaseIterable, мы можем получить массив всех City. Это может значительно сэкономить время.
👍13🤯5🔥2
Swift
Наверняка вы учили какие-то технологи и вскоре от отсутствия практики забыли о них. В этой статье, 6 вещей в Swift - которые вы могли знать или видеть когда-либо, но могли забыть об этом.
Все для Вас!❤️
https://blog.devgenius.io/swift-6-things-you-might-know-but-you-forgot-45ea63c99ae1
Наверняка вы учили какие-то технологи и вскоре от отсутствия практики забыли о них. В этой статье, 6 вещей в Swift - которые вы могли знать или видеть когда-либо, но могли забыть об этом.
Все для Вас!❤️
https://blog.devgenius.io/swift-6-things-you-might-know-but-you-forgot-45ea63c99ae1
Medium
Swift — 6 things you might know but you forgot
Hello, in this article I want to talk about Swift little things I bumped to, while I was developing Swift apps and made me say “Evrica”.
👍4❤1🤯1
Изменение пар ключ-значение
Для изменения значения элементов словаря вы можете выбрать один из двух способов. Первый способ – это присваивание нового значения для элемента с существующим ключом. Второй же способ – использование метода .updateValue(). Этот метод установит новое значение, если для этого ключа нет соответствующего значения, или обновит существующее значение, если оно существует.
Для изменения значения элементов словаря вы можете выбрать один из двух способов. Первый способ – это присваивание нового значения для элемента с существующим ключом. Второй же способ – использование метода .updateValue(). Этот метод установит новое значение, если для этого ключа нет соответствующего значения, или обновит существующее значение, если оно существует.
👍8
Удаление пар ключ-значение
Если вы хотите удалить пару ключ-значение из словаря, можете присвоить ключу значение nil или же использовать метод removeValue(). С помощью параметра forKey этот метод принимает ключ удаляемого элемента, а если элемента с таким ключом в словаре нет – то возвращается nil.
Кстати, чтобы удалить все значения в словаре, можете применить к словарю метод .removeAll().
Если вы хотите удалить пару ключ-значение из словаря, можете присвоить ключу значение nil или же использовать метод removeValue(). С помощью параметра forKey этот метод принимает ключ удаляемого элемента, а если элемента с таким ключом в словаре нет – то возвращается nil.
Кстати, чтобы удалить все значения в словаре, можете применить к словарю метод .removeAll().
👍4
Статические свойства и методы
Кроме свойств, которые относятся к отдельным экземплярам класса, мы можем определять свойства, которые относятся ко всему типу - свойства типа. Для объявления статических методов и свойств типа используется ключевое слово static. Доступ к ним осуществляется из самого типа, а не из экземпляра.
Кроме свойств, которые относятся к отдельным экземплярам класса, мы можем определять свойства, которые относятся ко всему типу - свойства типа. Для объявления статических методов и свойств типа используется ключевое слово static. Доступ к ним осуществляется из самого типа, а не из экземпляра.
🔥6👍2
Расширения
Если вам необходимо добавить новые функциональные возможности к существующему классу, структуре или перечислению, можно использовать расширения. С помощью них вы даже можете расширять типы, для которых у вас нет доступа к исходному коду.
При этом помните, что расширения могут добавлять новые функциональные возможности, но не переопределять существующие.
Если вам необходимо добавить новые функциональные возможности к существующему классу, структуре или перечислению, можно использовать расширения. С помощью них вы даже можете расширять типы, для которых у вас нет доступа к исходному коду.
При этом помните, что расширения могут добавлять новые функциональные возможности, но не переопределять существующие.
👍7
Нашёл ещё годную статью, про уведомления для iOS приложений!
Хороших выходных, удачного кодинга❤️
https://apptractor.ru/info/github/notificationbanner.html
Хороших выходных, удачного кодинга❤️
https://apptractor.ru/info/github/notificationbanner.html
AppTractor
NotificationBanner: уведомления для iOS-приложений
NotificationBanner — полностью настраиваемая и легкая библиотека, которая упрощает задачу отображения баннеров уведомлений и предупреждений в iOS-приложениях. Поддерживает iPhone, iPhoneX и iPad, смену ориентации, появление снизу или сверху, тактильный отклик…
🔥8❤1
14 полезных операторов для работы с массивами!
https://medium.com/@rashadsh/14-useful-array-operators-in-swift-dac130d41a4a
https://medium.com/@rashadsh/14-useful-array-operators-in-swift-dac130d41a4a
Medium
14 Useful Array operators in Swift
Arrays allow you to aggregate a large number of values into a single collection and then access those values based on where they are in the…
👍9
Согласно новому прогноз развития рынка приложений Sensor Tower, к 2026 году глобальные потребительские расходы в App Store и Google Play на премиум приложения, покупки в приложениях и подписки достигнут 233 миллиардов долларов. Это на 77% больше, чем 132 миллиарда долларов, которые потребители потратили в 2021 году. В 2026 году App Store получит от пользователей 161 млрд (в среднем +13.7% в год), а Google Play 72 млрд (+8.9% в год). Интересно, что по прогнозу в App Store доход от приложений обгонит доход от игр уже в 2024, а в 2026 игры уже будут давать только 43% доходов магазина, что на 23 процентных пункта меньше, чем в 2020 году.
🔥6