Aprendendo Objective-C – Parte 3

Criando Objetos

Existem duas formas principais de criar um objeto. A primeira você já nos posts anteriores.

NSString* myString = [NSString string];
Esta é a forma mais conveniente de fazer isto. Neste caso, você está criando um objeto autorelease, no qual veremos mais detalhes depois. Em muito casos, ao meu ver, você deve criar um objeto de forma manual.
NSString* myString = [[NSString alloc] init];
Esta é uma chamada aninhada de método. A primeira é o método alloc chamado através de NSString. Esta é uma chamada relativamente de baixo nível na qual reserva um espaço de memória e instancia um objeto.
A segunda é uma chamada ao método init do novo objeto. A implementação de init geralmente realiza um ajuste básico no objeto, como criar as variáveis de instância. Os detalhes disto não precisam ser conhecidos por você como cliente da classe.
Em alguns casos, você pode usar uma versão diferente de init, no qual toma um valor de entrada:
NSNumber* value = [[NSNumber alloc] initWithFloat:1.0];
Anúncios

Aprendendo Objective-C – Parte 1

Caros, como estou estudando mais uma nova linguagem vou postar uma tradução da página http://cocoadevcentral.com/d/learn_objectivec/ onde o autor mostra de forma rápida e didática as principais características da linguagem.

APRENDA OBJECTIVE-C

Objective-C é a principal linguagem utilizada para programar software para MAC. Se você se sente confortável com o básico dos conceitos de programação orientada a objetos e linguagem C, Objective-C fará muito sentido para você. Se você não sabe C, então você deveria ler este tutorial de C primeiramente.

Este tutorial é escrito e ilustrado por Scott Stevenson e foi traduzido por Sérgio Vieira.

MÉTODOS

Para iniciar rapidamente, vamos dar uma olhada em alguns exemplos simples. A sintaxe básica para chamar um método de um objeto é o seguinte:

[object method]
[object methodWithInput: input]

Além disso, os métodos podem retornar valores:

output = [object methodWithOutput];
output = [object methodWithInputAndOutput: input];

Você pode chamar métodos em classes também, que é como você cria objetos. No exemplo abaixo, chamamos o método string da classe NSString, que retorna um novo objeto NSString:

id myObject = [NSString string];

O tipo id significa que a variável myObject refere-se a qualquer tipo de objeto, então a classe atual e os métodos que ele implementa não são conhecidos quando você compila o aplicativo.

Neste exemplo, o tipo do objeto será um NSString, portanto podemos mudar seu tipo:

NSString* myString = [NSString string];

Agora a variável é do tipo NSString, então o compilador irá nos avisar se tentarmos usar um método do objeto que NSString não suporta.

Note que existe um asterisco a direita do tipo de objeto. Todas as variáveis de objetos do Objective-C são do ponteiros. O tipo id é predefinido com um tipo pnteiro, portanto não há necessidade de adicionar um asterisco.

Mensagens Aninhadas

Em muitas linguagem, uma chamada de método aninhado ou função é parecida com isto:

function1 ( function2() );

O resultado de function2 é passado como entrada para function1. Em Objective-C, mensagens aninhadas parecessem com isto:

[NSString stringWithFormat:[prefs format]];

Tente evitar mais de duas mensagens aninhadas por linha, pois assim evita-se que ela se torne difícil de entender.

Método com Múltiplas Entradas

Alguns métodos usam múltiplos valores de entrada. Em Objective-C, o nome de um método pode ser dividido em vários segmentos. No cabeçalho, um método com múltiplas entradas é parecido com isto:

-(BOOL)writeToFile: (NSString *)path atomically: (BOOL)useAuxiliaryFile;

Você pode chamar o método desta forma:

BOOL result = [myData writeToFile:@"/tmp/log.txt" atomically:NO];

Estes não são apenas argumentos nomeados. O nome do método é
writeToFile:atomically: em tempo de execução.