Как декодировать property list используя Decodable?
Property list, обычно сокращенно plist, представляет собой XML-файл, содержащий данные в формате "ключ-значение". Вы можете использовать его в своих приложениях для iOS в качестве простого хранилища данных. Эта функция-утилита позволит вам задекодить данные в нужный удобный вам тип, используя Decodable.
Source
#handyExtensions #plist #basic
Property list, обычно сокращенно plist, представляет собой XML-файл, содержащий данные в формате "ключ-значение". Вы можете использовать его в своих приложениях для iOS в качестве простого хранилища данных. Эта функция-утилита позволит вам задекодить данные в нужный удобный вам тип, используя Decodable.
Source
#handyExtensions #plist #basic
Как использовать String в качестве ошибок?
Обычно, чтобы сообщать о том, что операция завершилась с ошибкой, в Swift используется протокол Error. Когда мы проектируем чистое API, обычной практикой для выполнения данной цели является создание собственного error enum, в котором прописываются нужные варианты ошибок под конкретный функционал.
Но что делать, если мы хотим получить простое решение для случаев, когда ошибки единичные и смысла создавать отдельный enum нет?
Тогда можно реализовать LocalizedError для String и использовать строку в качестве ошибки. Такой вариант идеально подойдет для возвращение простых, user-facing ошибок.
Source
#handyExtensions #error #basic
Обычно, чтобы сообщать о том, что операция завершилась с ошибкой, в Swift используется протокол Error. Когда мы проектируем чистое API, обычной практикой для выполнения данной цели является создание собственного error enum, в котором прописываются нужные варианты ошибок под конкретный функционал.
Но что делать, если мы хотим получить простое решение для случаев, когда ошибки единичные и смысла создавать отдельный enum нет?
Тогда можно реализовать LocalizedError для String и использовать строку в качестве ошибки. Такой вариант идеально подойдет для возвращение простых, user-facing ошибок.
Source
#handyExtensions #error #basic
Как удалить десятичную дробь из числа с плавающей запятой, если она равна 0?
Это простое расширение убирает десятичную дробь из числа с плавающей запятой, если она равна 0. Это пригодится в тех случаях, когда нам нужно сделать красивый вывод числа где-то в пользовательском интерфейсе. Мы используем truncatingRemainder (тот же %), чтобы найти остаток от деления. Если оно равно нулю, то убираем плавающую точку, форматируя строку в виде "%.0f", в противном же случае просто конвертируем Double в String без каких-либо изменений.
Source
#handyExtensions #double #basic
Это простое расширение убирает десятичную дробь из числа с плавающей запятой, если она равна 0. Это пригодится в тех случаях, когда нам нужно сделать красивый вывод числа где-то в пользовательском интерфейсе. Мы используем truncatingRemainder (тот же %), чтобы найти остаток от деления. Если оно равно нулю, то убираем плавающую точку, форматируя строку в виде "%.0f", в противном же случае просто конвертируем Double в String без каких-либо изменений.
Source
#handyExtensions #double #basic
Как создать UIImage со сплошной заливкой и заданным размером?
В сегодняшнем посте из серии #handyExtensions я покажу, как, используя UIGraphicsRendererContext, можно создать изображения со сплошной заливкой определенного размера.
Логика очень простая:
1. Создаем контекст с помощью UIGraphicsBeginImageContextWithOptions. Это своего рода полотно, где мы можем рисовать.
2. Устанавливаем цвет для заливки.
3. Делаем заливку нужного нам размера.
4. Рендерим в изображения.
После того, как мы зарендерим изображения, нужно очистить контекст, используя UIGraphicsEndImageContext.
Source
#handyExtensions #images #basic
В сегодняшнем посте из серии #handyExtensions я покажу, как, используя UIGraphicsRendererContext, можно создать изображения со сплошной заливкой определенного размера.
Логика очень простая:
1. Создаем контекст с помощью UIGraphicsBeginImageContextWithOptions. Это своего рода полотно, где мы можем рисовать.
2. Устанавливаем цвет для заливки.
3. Делаем заливку нужного нам размера.
4. Рендерим в изображения.
После того, как мы зарендерим изображения, нужно очистить контекст, используя UIGraphicsEndImageContext.
Source
#handyExtensions #images #basic
Как сделать аббревиатуру для числа?
Когда нужно отобразить огромное число в пользовательском интерфейсе (скажем, количество лайков или подписчиков), зачастую показывать число полностью не имеет смысла. Гораздо удобнее использовать агрегированное представление в виде "12M" или "1.5K".
Данное расширение позволяет получить в виде аббревиатуры числа вплоть до квадриллиона. Если кратко, то логика такая:
1. Есть список аббревиатур "KMBTQ". Проходимся по нему с конца, потому что представление должно быть как можно компактнее.
2. Для каждой аббревиатуры определяем фактор. Для тысяч это ЧИСЛО/10^3 (10 в степени 3).
3. Если фактор меньше нуля, число слишком маленькое для этой аббревиатуры, поэтому двигаемся дальше.
4. Если фактор больше нуля, значит к фактору добавляем нужную аббревиатуру и получаем результат.
Source
#handyExtensions #int #intermediate
Когда нужно отобразить огромное число в пользовательском интерфейсе (скажем, количество лайков или подписчиков), зачастую показывать число полностью не имеет смысла. Гораздо удобнее использовать агрегированное представление в виде "12M" или "1.5K".
Данное расширение позволяет получить в виде аббревиатуры числа вплоть до квадриллиона. Если кратко, то логика такая:
1. Есть список аббревиатур "KMBTQ". Проходимся по нему с конца, потому что представление должно быть как можно компактнее.
2. Для каждой аббревиатуры определяем фактор. Для тысяч это ЧИСЛО/10^3 (10 в степени 3).
3. Если фактор меньше нуля, число слишком маленькое для этой аббревиатуры, поэтому двигаемся дальше.
4. Если фактор больше нуля, значит к фактору добавляем нужную аббревиатуру и получаем результат.
Source
#handyExtensions #int #intermediate