Zeichen - Eine Instanzeigenschaft von String, die mit Xcode 9.1 nicht mehr unterstützt wird
Es war sehr nützlich, mithilfe der characters
Eigenschaft einen Teilstring aus String abzurufen, aber jetzt ist er veraltet und Xcode schlägt vor, ihn zu verwenden substring
. Ich habe versucht, SO-Fragen und Tutorials / Richtlinien für Apple-Entwickler zu überprüfen. Konnte aber keine Lösung / Alternative wie vorgeschlagen sehen.
Hier ist eine Warnmeldung:
'Zeichen' ist veraltet: Bitte verwenden Sie String oder Teilzeichenfolge
Ich habe so viele String-Operationen mit Eigenschaften ausgeführt / behandelt characters
.
Hat jemand eine Idee / Info zu diesem Update?
String
Änderungen von Swift 3 zu 4 und bitte lesen Sie auch SE0163count
stattdessen zu verwenden .string.characters.forEach
die neue API verwendet haben, iststring.forEach { char in process(char) }
Antworten:
Swift 4 führte Änderungen an der String-API ein.
Sie können einfach
!stringValue.isEmpty
anstelle von verwendenstringValue.characters.count > 0
Für weitere Informationen erhalten Sie das Beispiel hier
für zB
quelle
Swift 4 vs Swift 3 Beispiele:
quelle
Einer der häufigsten Fälle für die Bearbeitung von Zeichenfolgen sind JSON-Antworten. In diesem Beispiel habe ich eine Erweiterung in meiner Überwachungs-App erstellt, um die letzten (n) Zeichen eines Bitcoin-JSON-Objekts zu löschen.
Swift 3:
Xcode 9.1 Fehlermeldung:
Xcode fordert uns auf, die Zeichenfolgenvariable oder -methode direkt zu verwenden .
Swift 4:
Komplette Erweiterung:
Anruf:
Konsole:
Zusätzliche Beispiele:
print("Spell has \(invisibleSpellName.count) characters.")
return String(dropLast(n))
return String(removeLast(n))
Dokumentation:
Sie werden häufig gängige Methoden wie
dropLast()
oderremoveLast()
oder verwendencount
so ist hier die explizite Apple - Dokumentation für jede Methode.Droplast ()
removeelast ()
Zeichen zählen
quelle
Diese Warnung ist nur eine Spitze des Eisbergs, es gab eine Beute von Saitenwechseln, Saiten sind wieder eine Sammlung von Charakteren, aber wir haben so etwas Neues und Cooles, SubStrings :)
Dies ist eine großartige Lektüre dazu: https://useyourloaf.com/blog/updating-strings-for-swift-4/
quelle
Verwenden Sie diese Option,
characters
daString
sie in Swift 2.0 keine Sammlung mehr ist. Dies ist jedoch nach wie vor gültige Code in Swift 4 aber nicht mehr erforderlich ist jetzt , dassString
aCollection
wieder.Zum Beispiel hat ein Swift 4
String
jetzt eine direkte Zählungseigenschaft, die die Zeichenanzahl angibt:Beispiele für String und SubString.
Swift 4
String
erhält jetzt direkt ein Element, das das erste Zeichen von String gibt:(string.characters.first)
Mit SubString erhalten Sie das erste Zeichen.
quelle
.first
da wenn die Zeichenfolge""
leer ist. es wird nur null zurückgeben, abersubstring
einen Fehler erzeugen..characters
genug entfernenSie können diesen Code auch für die Gruppierung von Wörterbüchern verwenden, ohne {$ 0.characters.first! }.
quelle
Entfernen Sie einfach Zeichen. Zum Beispiel:
stringValue.characters.count bis stringValue.count
quelle