2017-12-18 2 views
-3

In Swift 3 könnte die Länge eines Strings als if str.characters?.count >= 2 verwendet werden.Wie Länge der Zeichenfolge in Swift 4.0 zu vergleichen?

In Swift 4 ist die characters.count-Methode veraltet. Man sollte nur count verwenden.

Wenn jedoch if str.count >= 2 Vergleich, erhalte ich die folgende Fehlermeldung:

Binary operator '>=' cannot be applied to operands of type 'String.IndexDistance?' (aka 'Optional') and 'Int'

Wie kann ich dann den Vergleich machen if str.count >= 2?

+6

Ihr Problem hat nichts mit Swift 3 oder 4. Ihr issue zu tun e ist, dass "str" ​​optional ist. – rmaddy

+3

Verwenden Sie 'if str.count ?? 0> = 2' statt – Daniel

+0

'let optionalCount = optionalString.map {$ 0.count}' – Alexander

Antwort

1

Es ist richtig, dass in Swift 4 Sie die Zählung von .count ohne Zugriff auf die .characters jedoch überprüfen kann, dass es das Problem scheint, dass die Zeichenfolge optional, also was Sie tun können, ist zu optional es verbindlich:

if let string = str { 
    if string.count > 2 // works fine here... 
} else { 
    // the string is nil... 
} 
-1

ich glaube, Sie könnten etwas wie folgt aussehen:

if let charsize = str.count as? Int 
{ 
    if (charsize > 3) 
    { 
     print(charsize) 
    } 
} 
Verwandte Themen