TestsTested | ✓ |
LangLanguage | SwiftSwift |
License | MIT |
ReleasedLast Release | Sep 2016 |
SPMSupports SPM | ✗ |
Maintained by Roy Marmelstein.
A Swift formatter kit. Simple formatting syntax for decimal numbers, currency, mass, addresses, ordinal numbers and hexadecimal colors.
Import Format at the top of the Swift file with the content you would like to format.
import Format
Format provides a formatting extension for all number types. To format an Int to two decimal places:
let formattedNumber = 45.format(Decimals.Two) // 45.00
Format defaults to the user's current locale but a custom locale can be easily provided:
let frLocale = NSLocale(localeIdentifier: "FR")
let gbLocale = NSLocale(localeIdentifier: "GB")
let formattedFRNumber = 99.format(Currency.EUR, locale: frLocale) // 99,00 €
let formattedGBNumber = 99.format(Currency.GBP, locale: gbLocale) // £ 99.00
Apply any of these formatters to any number type:
Decimals.Three // 10.123
Currency.USD // $10.12
General.Ordinal // 10th (iOS9+ only)
General.SpellOut // ten point one two three
General.Distance // 30 feet
Mass.Person // 67 kg
The distance formatter assumes the number represents the distance in meters before converting and formatting it to the current locale's preferred unit.
Different cultures have different ways of displaying addresses. Format includes an extension on CLPlacemark that converts the addressDictionary to a formatted string in the current locale:
let address = placemark.format()
Please note that this function will produce a deprecated warning when used. This is because Apple is using AddressBook keys in the CLPlacemark and AddressBook was deprecated.
To format a custom address (all fields are optional strings):
let address = AddressFormatter().format(street, city: city, state: state, postalCode: postalCode, country: country, ISOCountryCode: ISOCountryCode)
Format can help you convert hexadecimal colors from the web to UIColors you can work with:
let color = ColorFormatter().format("2ba134")
In case of an error, the color will default to black if the string is empty or white if the string is invalid.