Comment supprimer les signes diacritiques d’une chaîne dans Swift?

Comment supprimer les signes diacritiques (ou les accents) d’une Ssortingng (par exemple, changer “één” en “een”) dans Swift? Dois-je retourner à NSSsortingng ou est-ce possible au sein de Swift?

Vous pouvez opérer directement sur une Ssortingng Swift (si “Foundation” est importé):

 let foo = "één" let bar = foo.ssortingngByFoldingWithOptions(.DiacriticInsensitiveSearch, locale: NSLocale.currentLocale()) print(bar) // een 

Swift 3:

 let foo = "één" let bar = foo.folding(options: .diacriticInsensitive, locale: .current) print(bar) // een 

Mise à jour de la réponse de @ MartinR… une extension Swift 3 pour fournir une chaîne de sorting / recherche qui pourrait être utile pour quelqu’un…

 extension Ssortingng { var forSorting: Ssortingng { let simple = folding(options: [.diacriticInsensitive, .widthInsensitive, .caseInsensitive], locale: nil) let nonAlphaNumeric = CharacterSet.alphanumerics.inverted return simple.components(separatedBy: nonAlphaNumeric).joined(separator: "") } } 

par exemple

 print("Mÿ nâMe ís jÄço´B".forSorting) // "mynameisjacob"