Publicado por: webclaudio | 15/02/2009

Curso de programação para IPHONE – Parte 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 <Crescer>

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.

Até lá…

Anúncios

Responses

  1. Ótimos artigos! Uma pena a demora para o próximo, mas entendo que tempo não deve ser algo que você tenha de sobra… Obrigado!

    • Agradeço Jonatas. Até o fim desta semana colocarei 3 artigos no ar. Vou falar um pouco também do iPhoneOS 3.0 que vem por aí…

  2. Ótima a sua iniciativa de criar um curso com este objetivo. Fui programador há muitos anos (clipper, vejam só) e fiquei entusiasmado com o iphone.

    Você faz idéia de quando continuará a escrever sobre o assunto?

    • Fala Adriano… Cara trabalhei com Clipper também e não se envergonhe. Nós Clippeiros temos o orgulho de bater no peito e dizer que construíamos cada display que aparecia pro usuário na munheca e tudo em texto. Aquilo era programação pra macho… hehehe. Cara voltei de São Paulo agora com a cabeça borbulhando de idéias… e farei pelo menos esta semana 3 artigos até domingo dia 29/03. É só aguardar… Pretendo levar este curso até o final…

  3. Claúdio, parabéns!!! Seus artigos tb estão muito bons… Também me orgulho de ter inciado com o Clipper ou melhor meus primeiros codigos de programação foi em Dbase III Plus (sou mais antiguado… kkkk), bem mais faz tempo que não programo mais nada, vai ser como começar novamente e o bom disso que vai ser sem vicio nenhum… uhuhuhu… Parabéns!!! Continue escrevendo… Um grande abraço

  4. Axel tem um tutorial ou livro, site pra iniciantes


Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

Categorias

%d blogueiros gostam disto: