Aprendendo Objective-C – Parte 2

Modificadores de Acesso

Todas as variáveis de instância são privadas em Objective-C por padrão, portanto, você deve utilizar os modificadores de acesso para acessar (get) e definir (set) os valores das variáveis na maioria das vezes. Existem duas sintaxes. Esta é a sintaxe tradicional utilizada na versão 1.x:

[photo setCaption:@"Day at the Beach"]; 
output = [photo caption];

O código na segunda linha não está lendo a variável de instância diretamente. Ele está chamando um método nomeado caption. Na maioria das vezes, você não adiciona o prefixo “get” na assinatura dos métodos em Objective-C.

Sempre que existir um código dentro de colchetes, ele estará enviando uma mensagem para um objeto ou uma classe.

O Uso do Ponto

O uso do ponto para os “getters” e “setters” é novo no Objective-C 2.0, que é parte integrante do Mac OS X 10.5:

photo.caption = @"Day at the Beach";
output = photo.caption;

Você pode usar um estilo ou outro, mas escolha apenas um por projeto. O uso do ponto só deve ser utilizado por métodos “getters” e “setters”, ele não deve ser utilizado por métodos com outros propósitos.

 

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.