No Objetivo C, pode-se fazer o seguinte para verificar se há strings:
if ([myString isEqualToString:@""]) {
NSLog(@"myString IS empty!");
} else {
NSLog(@"myString IS NOT empty, it is: %@", myString);
}
Como se detecta strings vazias no Swift?
Respostas:
Agora existe a capacidade integrada de detectar uma string vazia com
.isEmpty
:Documentação de pré-lançamento da Apple: "Strings and Characters" .
fonte
Uma maneira concisa de verificar se a sequência é nula ou vazia seria:
fonte
if let myString = myString where !myString.isEmpty { ... }
Estou reescrevendo completamente minha resposta ( novamente ). Desta vez é porque me tornei fã da
guard
declaração e retorno antecipado . Isso cria um código muito mais limpo.Sequência não opcional
Verifique o comprimento zero.
Se a
if
instrução for aprovada, você poderá usar a string com segurança, sabendo que ela não está vazia. Se estiver vazio, a função retornará mais cedo e nada depois que importa.Sequência opcional
Verifique o comprimento nulo ou zero.
Isso desembrulha o opcional e verifica se ele não está vazio ao mesmo tempo. Depois de passar a
guard
instrução, você pode usar com segurança sua seqüência de caracteres não vazia não empacotada.fonte
No Xcode 11.3 swift 5.2 e posterior
Usar
Exemplo
Se você deseja ignorar espaços em branco
fonte
Aqui está como eu verifico se a string está em branco. Por 'em branco', quero dizer uma string que está vazia ou contém apenas caracteres de espaço / nova linha.
Como usar:
fonte
Você também pode usar uma extensão opcional para não precisar se preocupar em desembrulhar ou usar
== true
:Nota: ao chamar isso como opcional, certifique-se de não usá
?
-lo; caso contrário, ainda será necessário desembrulhar.fonte
optionalString?isBlank
lo, que precisa ser desembrulhado.currentIncident.priority?.description.isBlank
. Diz:Value of optional type 'Bool?' not unwrapped; did you mean to use '!' or '?'?
. Eu tenho que fazer o(currentIncident.priority?.description ?? "").isBlank
que torna as extensões meio inúteis. Swift 4.1.priority
é o opcional lá. Se apenasdescription
fosse opcional, funcionaria, mas você não pode contornar um objeto pai sendo opcional assim (porque sepriority
for nulo, ele nem sequer tem umadescription
propriedade para verificar a inexistência de espaços em primeiro lugar).Para fazer a verificação e o comprimento nulos simultaneamente, o Swift 2.0 e o iOS 9 em diante, você pode usar
fonte
isEmpty fará o que você pensa que, se string == "", retornará verdadeiro. Algumas das outras respostas apontam para uma situação em que você tem uma sequência opcional.
POR FAVOR, use o encadeamento opcional !!!!
Se a sequência não for nula, isEmpty será usado, caso contrário, não será.
Abaixo, o opcionalString NÃO será definido porque o string é nulo
Obviamente você não usaria o código acima. Os ganhos vêm da análise JSON ou de outras situações em que você tem um valor ou não. Este código de garantias será executado se houver um valor.
fonte
Marque a verificação apenas para caracteres de espaços e novas linhas no texto
usando
fonte
Para Strings opcionais, que tal:
fonte
fonte
A respeito
fonte
Posso recomendar adicionar uma pequena extensão a String ou Array que se pareça com
Com ele, você pode escrever um código mais fácil de ler. Compare estas duas linhas
e
É fácil perder ! Cadastre-se no início da linha do punho.
fonte
Você pode usar esta extensão:
e use-o assim:
fonte