Come rimuovere i segni diacritici da una stringa in Swift?

Come rimuovere i segni diacritici (o gli accenti) da una String (come dire cambia “één” in “een”) in Swift? Devo tornare su NSString o è ansible farlo in Swift?

Puoi operare direttamente su una String Swift (se viene importato “Foundation”):

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

Swift 3:

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

Aggiorna alla risposta @ MartinR … un’estensione Swift 3 per fornire una stringa per l’ordinamento / ricerca, che potrebbe essere utile per qualcuno …

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

per esempio

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