domingo, 31 de outubro de 2010

Como programar para iPhone #5

Titulo do Capitulo 5
Olá! Neste capítulo vamos fechar o conteúdo sobre Objective-C para podermos ,no próximo, começar a falar do Sistema Operacional do Iphone, seus recursos e limitações. Aqui você aprenderá sobre “Properties”, “Categories” e “Protocols”.

PROPERTIES (PROPRIEDADES)


O que estudamos até agora deveria ser suficiente para que você possa compreender (e escrever) um simples código de Objective-C. Mas há outra grande característica em Objective-C, que merece ampla discussão por causa de sua sintaxe única: a propriedade.

O PROPÓSITO DAS PROPRIEDADES

Para que variáveis instanciadas sejam encapsuladas, normalmente você tem que escrever toneladas de métodos get’s e set’s quando se trabalha com OOP. Isso pode ficar tedioso, e você também deve ser cuidadoso com a consistência, para que você não tenha dezenas de diferentes sintaxes para seus “acessories” (Variáveis de acesso a dados) e “mutators” (Métodos modificadores).

Objective-C oferece uma solução para estes problemas: Você pode declarar uma instância de variável como uma propriedade. Ao fazer isso, você padroniza a variável de acesso e o método modificador de valor e cria getters e setters  automaticamente. O método de modificador  é chamado de “setVariable” e os de leitura  chamados com o nome escolhido para a variável de acesso.

Por exemplo, se voltarmos para classe das maçãs que falamos no nosso grande exemplo anterior, definimos a nossa variável  ”NSString * appleType” como uma propriedade, feito isso as seguintes declarações seriam automaticamente criadas:
(void)setAppleType: (NSString *) newValue;
(NSString *)appleType;


Você nunca  vai ver estas declarações, mas eles estarão lá.

CONFIGURANDO UMA PROPRIEDADE

Você declara uma instância de variável como uma propriedade usando a diretiva @property, como parte de sua declaração @interface. Abaixo segue um exemplo do estou falando:
3º exemplo deste curso
O cabeçalho do arquivo mostra que qualquer propriedade deve começar com a declaração de uma instância
(1). A diretiva @property (2) , em seguida, repete essa declaração. Se desejar, você pode parar aqui. Você já implicitamente declarou seus acessadores, modificadores e métodos, ou você pode continuar e escrever os seus próprios métodos manualmente se assim quiser.

Objective-C também irá escrever estes métodos para você, bastando apenas pedir para ele! Isto é feito com a declaração @sintetize na diretiva @implementation (3). Isto criará métodos acessadores que lêem e alteram a variável da forma que você está acostumado. O método de inserção(set) é, por padrão o principal, mas você pode escolher um outro método utilizando propriedades e atributos, e que nós vamos falar conforme estudamos.

USANDO ACESSADORES
Se você não for fazer nada extravagante, você pode usar imediatamente em sua classe os acessadores, modificadores e métodos, conforme mostrado nos seguintes três exemplos:
NSString * choosenType = [AppleTree appleType];
[AppleTree setAppleType: @ "Washington Vermelha"];
[AppleTree setAppleType: myAppleType];


Além de lhe prover automaticamente acessadores e modificadores, “@properties” também lhe dá acesso a um pouco de limpesa sintática, que pode tornar a sua utilização, muito mais fácil.

Outra forma de notação
Esiste uma outra forma de se acessar propriedades de classes no Objective-C e que lembra muito o formato normal de linguagens de programação orientadas a objeto que estamos acustamos. Porém como a idéia aqui é aprender a sintaxe do Objective-C eu desaprovo a utilização desta notação. Mas para fim de conhecimento saiba que você pode acessar as propriedades declarados na diretiva @property com a utilização do ponto “.”).

A sintaxe abaixo é a converção para esta notação usando o ponto do nosso último exemplo:
 NSString *ChoosenType = AppleTree.appleType;
AppleTree.appleType = @”Washington Red”;
AppleTree.appleType = myAppleType;


Com isto em mãos você já está habil para escrever códigos simples. Existem outras diretivas de compilação para facilitar o desenvolvedor, mas acho melhor não aprendermos agora para que você digira melhor o que foi ensinado até aqui 

Muitas vezes a arroba (@) é usada para criar variáveis de certos tipos. Ela é mais frequentemente usada para criar uma variável do tipo  String (NSString *). Vimos isso em alguns dos nossos exemplos. Você apenas deve incluir o símbolo @, seguido pelo o valor da seqüência de caracteres que você quer definir:
NSString * mySample @ = “O que tem isto a ver com maçãs?”;

Ei tentarei no decorrer do curso, passar a maioria destas diretivas e gradativamente aumentar a complexidade dos códigos para o fácil aprendizado.

CATEGORIES E PROTOCOLS

Existem dois elementos finais no Objective-C, que acho importante, pelo menos, tocar comentar: Categories e Protocols. Vou definir o que fazem, mas não iremos mergulhar profundamente em seus detalhes. Para saber mais, consulte a documentação da Apple que está no link deste Blog.

Categories
Categories são usados se você quiser adicionar comportamento a uma classe sem herdar de outra (subclassing). Como sempre, você deve fazê-lo através da criação de um novo par de arquivos de código que contenham @interface e o @implementation. Desta vez você não precisa mais se preocupar com o nome da classe pai (Super), mas deve incluir um nome de categoria entre parênteses, como se segue:
@interface AppleTree (MyAppleChanges)
@implementation AppleTree (MyAppleChanges)


Como resultado, os métodos e as variáveis categorizados que você descreveria para a classe serão adicionados ao núcleo da classe de definição do seu programa.
Nós não usaremos categories neste curso.


Protocols
Um protocolo é efetivamente um comportamento que não é vinculado a uma classe. Nele se declara um conjunto de métodos, listando seus argumentos e os seus retornos. As Classes podem, em seguida, afirmar que eles estão usando este protocolo na sua própria declaração @interface.

Por exemplo, se tivéssemos um protocolo Crescer que é utilizada por plantas e animais parecidos, poderíamos definir a sua utilização como segue:
@interface AppleTree: UrTree

A classe AppleTree seria assim capaz de responder a todos os métodos definidos no protocolo Crescer.
Veremos alguns exemplos de Protocols no decorrer do curso.


Abaixo um resumo de tudo que aprendemos até agora sobre a sintaxe do Objective-C:
resumo1
Bom acho que o fundamental já foi explicado, e o que faremos no próximo capítulo será aprender sobre o S.O. do iPhone. Tentarei resumir tudo num único capítulo para podermos em seguida meter a mão na massa e fazermos nosso primeiro programa no iPhone.

Autor: webclaudio.wordpress.com

1 comentários:

Anônimo disse...

show, Show, SHOW!!!

Postar um comentário

 

Related Posts with Thumbnails