caracteres - uma propriedade de instância de String, foi preterida no Xcode 9.1
Foi muito útil obter uma substring de String usando a characters
propriedade, mas agora ela foi preterida e o Xcode sugere o uso substring
. Tentei verificar as questões SO e os tutoriais / diretrizes para desenvolvedores da Apple sobre o mesmo. Mas não conseguiu ver nenhuma solução / alternativa, conforme sugerido.
Aqui está a mensagem de aviso:
'caracteres' foi descontinuado: use String ou Substring
Eu tenho tantas operações de cadeia são realizados / manuseado usando a propriedade characters
.
Alguém tem alguma ideia / informação sobre esta atualização?
String
mudanças de Swift 3 para 4 e leia também SE0163count
lugar.string.characters.forEach
a nova API éstring.forEach { char in process(char) }
Respostas:
O Swift 4 introduziu alterações na API da string.
Você pode apenas usar em
!stringValue.isEmpty
vez destringValue.characters.count > 0
para obter mais informações, obtenha a amostra daqui
por exemplo
fonte
Exemplos do Swift 4 vs Swift 3:
fonte
Um dos casos mais comuns para manipular seqüências de caracteres é com respostas JSON. Neste exemplo, criei uma extensão no meu aplicativo de exibição para descartar os últimos (n) caracteres de um objeto Bitcoin JSON.
Swift 3:
Mensagem de erro do Xcode 9.1:
O Xcode está nos dizendo para usar a variável ou método de string diretamente .
Swift 4:
Extensão completa:
Ligar:
Console:
Exemplos adicionais:
print("Spell has \(invisibleSpellName.count) characters.")
return String(dropLast(n))
return String(removeLast(n))
Documentação:
Muitas vezes você vai estar usando métodos comuns, como
dropLast()
ouremoveLast()
oucount
então aqui está a documentação da Apple explícita para cada método.droplast ()
removelast ()
contando caracteres
fonte
Esse aviso é apenas o topo do iceberg, houve muitas alterações nas cordas, as cordas são novamente uma coleção de caracteres, mas temos algo novo e legal, sub-cordas :)
Esta é uma ótima leitura sobre isso: https://useyourloaf.com/blog/updating-strings-for-swift-4/
fonte
Use isso
characters
porqueString
deixou de ser uma coleção no Swift 2.0. No entanto, esse código ainda é válido no Swift 4, mas não é mais necessário agora, poisString
é umCollection
novo.Por exemplo, um Swift 4
String
agora tem uma propriedade de contagem direta que fornece a contagem de caracteres:Exemplos para String e SubString.
String
Agora, o Swift 4 obtém diretamente o elemento que fornece o primeiro caractere de String:(string.characters.first)
Usando SubString obtém o primeiro caractere.
fonte
.first
porque se a string está""
vazia. retornará apenas zero, massubstring
produzirá erro..characters
o suficienteVocê também pode usar este código para agrupar dicionários sem usar {$ 0.characters.first! }
fonte
Basta remover caracteres. Por exemplo:
stringValue.characters.count para stringValue.count
fonte