O melhor pedaço da Maçã.

Quaddro + MacMagazine: programando em Objective-C — classe NSString

Primeiras variáveis

Primeiro foram os artigos sobre os fundamentos da linguagem C; depois escrevi brevemente sobre orientação a objetos e o trabalho com classes, propriedades e métodos; agora chegou a hora de começar uma série de estudos sobre as classes mais usadas no desenvolvimento de aplicativos para iOS.

Publicidade

Pré-requisitos

Know How, da banda Kings of Convenience

Conceitos

É difícil apontar uma classe como a mais usada de todas, mas com certeza podemos dizer que NSString está facilmente entre as dez mais! É difícil criar um aplicativo que não exiba, concatene ou processe algum tipo de texto na tela do aparelho.

Até mesmo para o nosso estudo gradativo, começar a série com ela é uma boa escolha já que trabalharemos muito com textos antes de entrar em interface gráfica. Contudo, não se enganem pensando que uma classe de texto só serve para esse estudo inicial pois usaremos diversos métodos de NSString em artigos mais avançados — ela é bem útil.

Prática

Vamos criar um novo projeto com o nome Classe_NSString e definir as seguintes variáveis. Puxando os conceitos dos últimos textos, vem a pergunta: se NSString é uma classe, ou seja, um modelo de dados, a “variável” criada a partir dela recebe o nome de objeto, certo?! Exatamente, gafanhoto! E para deixar registrado outro termo técnico importante, outra forma de verbalizar esse processo de criar um objeto a partir de uma classe é usando o termo “instanciar”, uma vez que estamos criando instâncias (cópias) da classe.

Primeiras variáveis

Vamos começar os estudos com um recurso importante: detectar o tamanho do texto.

Length

Como comentei no código, a propriedade length é responsável por retornar a quantidade de caracteres de um objeto NSString. Notem o acesso a essa propriedade pela sintaxe de ponto após o objeto nome. Esse tipo de resgate é extremamente importante em situações de entrada de dados e cadastros. É uma das formas inclusive de saber se o usuário deixou algum campo de texto vazio, comparando o valor com 0, por exemplo.

Outro recurso importante é juntar textos — o termo técnico para isso é “concatenar”. A imagem a seguir ilustra um dos métodos que nos permite fazer isso:

StringWithFormat

O método stringWithFormat nos permite criar uma string com base em uma formatação de dados, algo parecido com o que definimos nos printf dos textos passados. Criamos uma string com especificadores de formato que podem puxar valores e outras variáveis. Nesse código eu defini como base para a nova string as variáveis nome e sobrenome com um caractere de espaço as separando.

Publicidade

O fato de o método stringWithFormat permitir esse trabalho com especificadores nos abre um leque bem interessante, pois é uma das formas mais fáceis de converter ou adicionar números a textos, por exemplo. Outro trabalho bacana que o método permite é inserir caracteres ou strings primitivas de C em um objeto NSString de Objective-C.

Mais um método legal para essas situações de concatenação: stringByAppendingFormat. Sua diferença em relação ao stringWithFormat é que ele exige uma string inicial para receber a formatação. Aqui nós entramos no terreno das preferências e hábitos de programadores, mas em boa parte dos casos o stringWithFormat é mais prático.

StringByAppending

Mas e se a necessidade não for unir textos, mas sim compará-los?! Aí entra o isEqualToString:

IsEqual

Em algumas linguagens de programação nós até podemos comparar textos de maneira direta (texto == outroTexto), mas em Objective-C nós precisamos usar um método para isso. A sintaxe do método isEqualToString é super simples e seu retorno é booleano, ou seja, do tipo verdadeiro ou falso.

Eu poderia listar aqui quase todos os métodos úteis e importantes ao desenvolvimento de aplicativos iOS, mas uma dose de pesquisa de vocês faz parte do estudo, não é?! 😛

Imagino que o pessoal que já está se aventurando em Objective-C tem suas dúvidas sobre algum método específico como busca, substituição ou gravação de texto. Como sempre, abro espaço para dúvidas e debates no tópico oficial, no fórum da Quaddro.

Um abraço e até a próxima!

Ver comentários do post

Compartilhe este artigo
URL compartilhável
Post Ant.

Apple ganha disputa japonesa contra a Samsung; empresa notifica usuários sobre reembolso de US$5

Próx. Post

Protótipo de “iPhone 5S” utiliza um chip A7

Posts Relacionados