2015-04-23 15 views

risposta

6

Questo perché Swift utilizza cluster Grapheme estesi. Swift vede lo smiley come un personaggio, ma il metodo NSString lo vede come due caratteri Unicode, sebbene siano "combinati" e rappresentino un singolo simbolo.

6

penso che il documentation dice che la cosa migliore:

Il personaggio conteggio restituito dal conte (_ :) funzione non è sempre la uguale alla proprietà length di una NSString che contiene gli stessi caratteri. La lunghezza di una NSString si basa sul numero di unità di codice a 16 bit all'interno della rappresentazione UTF-16 della stringa e non sul numero di cluster grapheme estesi Unicode all'interno della stringa. Per riflettere questo fatto, la proprietà length di NSString è chiamata utf16Count quando si accede a un valore Swift String.

+3

'utf16Count' non esiste più in Swift 1.2, è' count (str.utf16) 'ora. –