characters - une propriété d'instance de String, est déconseillée avec Xcode 9.1
Il était très utile d’obtenir une sous-chaîne à partir de String en utilisant la propriété characters
, mais elle est maintenant déconseillée et Xcode suggère d’utiliser substring
. J'ai essayé de vérifier autour de SO questions et tutoriels/instructions aux développeurs Apple pour la même chose. Mais ne pouvait voir aucune solution/alternative comme suggéré.
Voici un message d'avertissement:
'characters' est obsolète: veuillez utiliser String ou Substring
J'ai tellement d'opérations sur les chaînes qui sont exécutées/gérées à l'aide de la propriété characters
.
Quelqu'un a une idée/info sur cette mise à jour?
Swift 4 a introduit des modifications sur la chaîne de caractères API .
Vous pouvez simplement utiliser !stringValue.isEmpty
au lieu de stringValue.characters.count > 0
pour plus d'informations, vous obtenez l'échantillon de ici
par exemple
let edit = "Summary"
edit.count // 7
Swift 4 vs Swift 3 exemples:
let myString = "test"
for char in myString.characters {print(char) } // Swift 3
for char in myString { print(char) } // Swift 4
let length = myString.characters.count // Swift 3
let length = myString.count // Swift 4
Cet avertissement est juste un sommet de l'iceberg, il y avait un tas de changements de chaînes, les chaînes sont à nouveau une collection de caractères, mais nous avons quelque chose de nouveau et de cool, les sous-chaînes :)
C'est une excellente lecture à ce sujet: https://useyourloaf.com/blog/updating-strings-for-Swift-4/
Utilisez cette characters
car String
a 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 que String
est à nouveau Collection
.
Par exemple, Swift 4 String
a maintenant une propriété de décompte direct qui donne le décompte de caractères:
// Swift 4
let spString = "Stack"
spString.count // 5
Exemples pour String et SubString.
Chaîne
Swift 4 String
maintenant obtenir directement un élément qui donne le premier caractère de String: (string.characters.first)
let spString = "Stack"
let firstElement = spString.first //S
SubString
En utilisant SubString, obtenez le premier caractère.
let spstring = "Welcome"
let indexStartOfText = spstring.index(spstring.startIndex, offsetBy: 1)
let sub = spstring.substring(to: indexStartOfText)
print(sub) //W
Vous pouvez également utiliser ce code pour regrouper des dictionnaires sans utiliser {$ 0.characters.first! }.
let cities = ["Shanghai": 24_256_800, "Karachi": 23_500_000, "Beijing": 21_516_000, "Seoul": 9_995_000]
let groupedCities = Dictionary(grouping: cities.keys) { $0.first! }
print(groupedCities)