Trabalhando com Strings em Objective-C

Diferente do C puro que para utilizarmos uma cadeia de caracteres temos que criar um array ( char[] ), em Object-C temos 2 classes que são utilizadas para representar Strings em código Objective-C, elas são:

NSString e NSMutableString( subclasse de NSString ).

Uma string imutável (NSString) é definida não sua criação e não pode mais ser alterada, enquanto uma string mutável (NSMutableString) pode ter seu conteúdo alterado após sua criação. Com base nessas informações, entendemos que devemos utilizar NSString quando uma string não precisar ser alterada depois de sua criação e caso contrário devemos utilizar a classe NSMutableString.

Podemos criar uma String de 2 formas, utilizando métodos das classes NSString e NSMutableString ou o construtor @.

1
2
NSString *texto1 = @"Minha String";
NSString *texto2 = [NSString stringWithUTF8String :"Nova String"];

Para comparar strings, você pode utilizar o operador == ou o metodo isEqualToString, utilizando o operador == a comparação é feita utilizando os ponteiros das variáveis e utilizando o método isEqualToString a comparação é feita utilizando o conteúdo das duas strings.

1
2
3
4
5
6
NSString *texto1 = @"Minha String";
NSMutableString *texto2 = [[NSMutableString alloc] initWithString:@"Minha "];
[texto2 appendString: @"String"];

[texto1 isEqualToString: texto2]; // retorna false
NSBool *resultado = (texto1 == texto2); //retorna true

A classe NSString fornece diversos métodos para ajudar o desenvolvedor, para conhece-los o ideal é ler a documentação da classe disponível na Apple Developer Connection.

Vou incluir alguns exemplos abaixo para demostrar alguns recursos que a classe NSString fornece:

1
2
3
NSString *texto1 = @"Mac";
NSString *texto2 = [texto1 stringByAppendingString:@" Developers"];
// texto2 tera o valor @"Mac Developers"

No exemplo acima criei uma instância de NSString chamada texto1 e depois criei outra instância chamada texto2 utilizando o valor da variavel texto1 e adicionando outro valor no final.

1
2
3
NSString *numeros = @"0123456789";
NSString *parte = [numeros substringToIndex:4];
// parte é igual a @"0123"

No exemplo acima criei uma instância de NSString chamada numeros com o valor “0123456789” e depois criei uma segunda instância de NSString chamada parte onde seu valor sera os 4 primeiros caracteres da variavel numeros.

Com isso já sabemos o básico de como utilizar as classes NSString e NSMutableString em Objective-C.


comments powered by Disqus