En el Objetivo C, uno podría hacer lo siguiente para verificar las cadenas:
if ([myString isEqualToString:@""]) {
NSLog(@"myString IS empty!");
} else {
NSLog(@"myString IS NOT empty, it is: %@", myString);
}
¿Cómo se detectan cadenas vacías en Swift?
Respuestas:
Ahora existe la capacidad incorporada para detectar cadenas vacías con
.isEmpty
:Documentación preliminar de Apple: "Cadenas y caracteres" .
fuente
Una forma concisa de verificar si la cadena es nula o vacía sería:
fuente
if let myString = myString where !myString.isEmpty { ... }
Estoy reescribiendo completamente mi respuesta ( nuevamente ). Esta vez es porque me he convertido en un fanático de la
guard
declaración y el regreso temprano . Hace un código mucho más limpio.Cadena no opcional
Verifique la longitud cero.
Si la
if
declaración se aprueba, puede usar la cadena de forma segura sabiendo que no está vacía. Si está vacío, la función volverá antes y nada después importará.Cadena opcional
Verifique la longitud nula o cero.
Esto desenvuelve lo opcional y verifica que no esté vacío al mismo tiempo. Después de pasar la
guard
declaración, puede usar con seguridad su cadena no vacía sin envolver.fuente
En Xcode 11.3 swift 5.2 y posterior
Utilizar
Ejemplo
Si quieres ignorar espacios en blanco
fuente
Así es como verifico si la cadena está en blanco. Por "en blanco" me refiero a una cadena que está vacía o que contiene solo caracteres de espacio / nueva línea.
Cómo utilizar:
fuente
También puede usar una extensión opcional para no tener que preocuparse por desenvolver o usar
== true
:Nota: cuando llame a esto de forma opcional, asegúrese de no usarlo
?
o, de lo contrario, será necesario desenvolverlo.fuente
optionalString?isBlank
es necesario desenvolverlo.currentIncident.priority?.description.isBlank
. Dice:Value of optional type 'Bool?' not unwrapped; did you mean to use '!' or '?'?
. Tengo que hacer lo(currentIncident.priority?.description ?? "").isBlank
que hace que las extensiones sean inútiles. Swift 4.1.priority
es el opcional allí. Si solodescription
fuera opcional, funcionaría, pero no puede evitar que un objeto primario sea opcional de esa manera (porque sipriority
es nulo, ni siquiera tiene unadescription
propiedad para verificar el vacío en primer lugar).Para hacer la comprobación nula y la longitud simultáneamente de Swift 2.0 y iOS 9 en adelante, puede usar
fuente
isEmpty hará lo que cree que hará, si string == "", devolverá verdadero. Algunas de las otras respuestas apuntan a una situación en la que tiene una cadena opcional.
¡POR FAVOR, use el encadenamiento opcional !
Si la cadena no es nula, se usará isEmpty, de lo contrario no se usará.
A continuación, la cadena opcional NO se establecerá porque la cadena es nula
Obviamente no usarías el código anterior. Las ganancias provienen del análisis JSON u otras situaciones en las que tiene un valor o no. Esto garantiza que el código se ejecutará si hay un valor.
fuente
Comprobar comprobar solo espacios y caracteres de nueva línea en el texto
utilizando
fuente
Para cadenas opcionales, ¿qué tal:
fuente
fuente
Qué pasa
fuente
Puedo recomendar agregar una pequeña extensión a String o Array que se vea como
Con él puedes escribir código que sea más fácil de leer. Compara estas dos líneas
y
¡Es fácil perderse ! firmar al comienzo de la primera línea.
fuente
Puedes usar esta extensión:
y luego úsalo así:
fuente