Lunghezza della string in Swift 1.2 e Swift 2.0

Nella versione precedente di Swift, avevo il seguente codice.

func myfunc(mystr: String) { if mystr.utf16Count >= 3 { 

Con l'ultima versione di Swift 1.2, ora ho il seguente errore.

 'utf16Count' is unavailable: Take the count of a UTF-16 view instead, ie count(str.utf16) 

Ok, quindi cambio il mio codice come segue.

 func myfunc(mystr: String) { if count(mystr.utf16) >= 3 { 

Ma questo non funziona. Ora ho il seguente messaggio di errore.

 '(String.UTF16View) -> _' is not identical to 'Int16' 

Qual è il modo corretto per get la lunghezza di una string con Swift 1.2?

Solutions Collecting From Web of "Lunghezza della string in Swift 1.2 e Swift 2.0"

Puoi usare l'estensione come:

 extension String { var length: Int { return count(self) } // Swift 1.2 } 

e puoi usarlo:

 if mystr.length >= 3 { } 

Oppure puoi contare direttamente in questo modo:

 if count(mystr) >= 3{ } 

E anche questo funziona per me:

 if count(mystr.utf16) >= 3 { } 

Per Swift 2.0:

 extension String { var length: Int { return characters.count } } let str = "Hello, World" str.length //12 

Un'altra estensione:

 extension String { var length: Int { return (self as NSString).length } } let str = "Hello, World" str.length //12 

Se vuoi un uso diretto:

 let str: String = "Hello, World" print(str.characters.count) // 12 let str1: String = "Hello, World" print(str1.endIndex) // 12 let str2 = "Hello, World" NSString(string: str2).length //12 

Devi usare la properties; caratteri che contiene il count delle properties;:

yourString.characters.count

Swift 2.0 UPDATE

 extension String { var count: Int { return self.characters.count } } 

Uso:

 var str = "I love Swift 2.0!" var n = str.count 

Utili suggerimenti per la programmazione e incisioni

Ecco tutto in uno – copiato da qui

 let str = "Hello" let count = str.length // returns 5 (Int) extension String { var length: Int { return countElements(self) } // Swift 1.1 } extension String { var length: Int { return count(self) } // Swift 1.2 } extension String { var length: Int { return characters.count } // Swift 2.0 } 

count(mystr) è il modo corretto, non è necessario convertire la codifica.

Questo: if count(mystr.utf16) >= 3 va bene finché si esegue Int16(3)

Modifica: questa è una vecchia risposta. OP ha aggiornato la sua domanda per riflettere Swift 2 e la risposta sopra è corretta.