caracteres : una propiedad de instancia de String, está en desuso con Xcode 9.1
Fue muy útil obtener una subcadena de String mediante el uso de la characters
propiedad, pero ahora ha quedado en desuso y Xcode sugiere su uso substring
. Traté de verificar las preguntas SO y los tutoriales / pautas para desarrolladores de Apple para lo mismo. Pero no pude ver ninguna solución / alternativa como se sugiere.
Aquí hay un mensaje de advertencia:
los 'caracteres' están en desuso: utilice String o Substring
Tengo tantas operaciones de cadena que se realizan / manejan usando la propiedad characters
.
¿Alguien tiene alguna idea / información sobre esta actualización?
String
cambios de Swift 3 a 4 y lea también SE0163count
en su lugar.string.characters.forEach
la nueva API esstring.forEach { char in process(char) }
Respuestas:
Swift 4 introdujo cambios en la cadena de API.
Puedes usar en
!stringValue.isEmpty
lugar destringValue.characters.count > 0
para obtener más información, obtenga la muestra desde aquí
por ej.
fuente
Swift 4 vs Swift 3 ejemplos:
fuente
Uno de los casos más comunes para manipular cadenas es con respuestas JSON. En este ejemplo, creé una extensión en mi aplicación de reloj para soltar los últimos (n) caracteres de un objeto JSON de Bitcoin.
Swift 3:
Mensaje de error de Xcode 9.1:
Xcode nos dice que usemos la variable de cadena o el método directamente .
Swift 4:
Extensión completa:
Llamada:
Consola:
Ejemplos adicionales:
print("Spell has \(invisibleSpellName.count) characters.")
return String(dropLast(n))
return String(removeLast(n))
Documentación:
A menudo a utilizar métodos comunes tales como
dropLast()
oremoveLast()
, ocount
por lo que aquí está la documentación de Apple explícita para cada método.droplast ()
removelast ()
contando personajes
fuente
Esa advertencia es solo una parte superior del iceberg, hubo una gran cantidad de cambios de cadena, las cadenas son nuevamente una colección de caracteres, pero tenemos algo nuevo y genial, subStrings :)
Esta es una gran lectura sobre esto: https://useyourloaf.com/blog/updating-strings-for-swift-4/
fuente
Use esto
characters
porqueString
dejó de ser una colección en Swift 2.0. Sin embargo, esto sigue siendo un código válido en Swift 4, pero ya no es necesario ahora queString
es unCollection
nuevo.Por ejemplo, un Swift 4
String
ahora tiene una propiedad de recuento directo que da el recuento de caracteres:Ejemplos para String y SubString.
Swift 4
String
ahora obtiene directamente Element que le da el primer carácter de String:(string.characters.first)
Usando SubString obtén el primer carácter.
fuente
.first
porque si la cadena está""
vacía. solo devolverá nil perosubstring
producirá un error..characters
suficienteTambién puede usar este código para agrupar el diccionario sin usar {$ 0.characters.first! }.
fuente
Simplemente elimine caracteres. Por ejemplo:
stringValue.characters.count a stringValue.count
fuente