Vincent Tourraine
Blog

ListFormatter

#dev #iOS

Les Formatters (DateFormatter, NumberFormatter et compagnie) sont des classes bien utiles. Dernière amélioration remarquable : l’ajout de ListFormatter avec iOS 13.

Cette classe joint un tableau de String en utilisant la forme grammaticale et typographique correcte. ["A", "B", "C"] devient donc "A, B, and C" en anglais, ou "A, B et C" en français.

Son utilisation est très simple :

ListFormatter.localizedString(byJoining: ["A", "B", "C"])

En lisant l’excellent article de NSHipster sur le sujet, je découvre qu’il est également possible de le combiner avec un autre Formatter, pour mettre en forme une collection qui n’est pas originellement représentée par des String. Voici un exemple avec des nombres :

let numberFormatter = NumberFormatter()
let listFormatter = ListFormatter()
listFormatter.itemFormatter = numberFormatter
let string = listFormatter.string(from: [1, 2, 3])

Si vous avez déjà écrit strings.joined(by: ", ") (🙋‍♂️), ou si vous avez déjà implémenté une solution plus poussée, cette classe est pour vous.