caractères - une propriété d'instance de String, est obsolète depuis avec Xcode 9.1
Il était très utile d'obtenir une sous-chaîne à partir de String en utilisant la characters
propriété, mais maintenant elle est obsolète et Xcode suggère de l'utiliser substring
. J'ai essayé de vérifier les questions SO et les tutoriels / directives des développeurs Apple pour la même chose. Mais je n'ai pas pu voir de solution / alternative comme suggéré.
Voici un message d'avertissement:
'characters' est obsolète: veuillez utiliser une chaîne ou une sous-chaîne
J'ai tellement d'opérations de chaîne sont effectuées / gérées en utilisant la propriété characters
.
Quelqu'un a-t-il des idées / informations sur cette mise à jour?
String
changements de Swift 3 à 4 et veuillez lire aussi SE0163count
place.string.characters.forEach
la nouvelle API eststring.forEach { char in process(char) }
Réponses:
Swift 4 a introduit des modifications sur l'API de chaîne.
Vous pouvez simplement utiliser à la
!stringValue.isEmpty
place destringValue.characters.count > 0
pour plus d'informations, vous obtenez l'exemple d' ici
par exemple
la source
Exemples de Swift 4 vs Swift 3:
la source
L'un des cas les plus courants de manipulation de chaînes est celui des réponses JSON. Dans cet exemple, j'ai créé une extension dans mon application de montre pour supprimer les (n) derniers caractères d'un objet JSON Bitcoin.
Swift 3:
Message d'erreur Xcode 9.1:
Xcode nous dit d'utiliser directement la variable chaîne ou la méthode .
Swift 4:
Extension complète:
Appel:
Console:
Exemples supplémentaires:
print("Spell has \(invisibleSpellName.count) characters.")
return String(dropLast(n))
return String(removeLast(n))
Documentation:
Vous utiliserez souvent des méthodes courantes telles que
dropLast()
ouremoveLast()
oucount
alors voici la documentation Apple explicite pour chaque méthode.droplast ()
removelast ()
compter les caractères
la source
Cet avertissement n'est qu'un sommet de l'iceberg, il y a eu un butin de changements de chaîne, les chaînes sont à nouveau une collection de caractères, mais nous avons eu quelque chose de nouveau et cool, des sous-chaînes :)
C'est une excellente lecture à ce sujet: https://useyourloaf.com/blog/updating-strings-for-swift-4/
la source
Utilisez ceci
characters
parce queString
cessé d'être une collection dans Swift 2.0. Cependant, ce code est toujours valide dans Swift 4 mais n'est plus nécessaire maintenant queString
c'est àCollection
nouveau.Par exemple, un Swift 4 a
String
maintenant une propriété de comptage direct qui donne le nombre de caractères:Exemples pour String et SubString.
Swift 4
String
obtient maintenant directement l'élément qui donne le premier caractère de String:(string.characters.first)
En utilisant SubString, obtenez le premier caractère.
la source
.first
car si la chaîne est""
vide. il ne retournera que nul maissubstring
produira une erreur..characters
assezVous pouvez également utiliser ce code pour le regroupement de dictionnaires sans utiliser {$ 0.characters.first! }.
la source
Supprimez simplement les caractères Par exemple:
stringValue.characters.count à stringValue.count
la source