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 characterspropiedad, 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?


Stringcambios de Swift 3 a 4 y lea también SE0163counten su lugar.string.characters.forEachla nueva API esstring.forEach { char in process(char) }Respuestas:
Swift 4 introdujo cambios en la cadena de API.
Puedes usar en
!stringValue.isEmptylugar destringValue.characters.count > 0para 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(), ocountpor 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
charactersporqueStringdejó 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 queStringes unCollectionnuevo.Por ejemplo, un Swift 4
Stringahora tiene una propiedad de recuento directo que da el recuento de caracteres:Ejemplos para String y SubString.
Swift 4
Stringahora obtiene directamente Element que le da el primer carácter de String:(string.characters.first)Usando SubString obtén el primer carácter.
fuente
.firstporque si la cadena está""vacía. solo devolverá nil perosubstringproducirá un error..characterssuficienteTambié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