SlideShare uma empresa Scribd logo
Objective-C
Linguagem Nativa para Desenvolvimento iOS
Importação de Bibliotecas
Os arquivos de biblioteca possuem extensão ".
h":
#import <Foundation/Foundation.h>
Main
No Objective-C, a declaração da função main,
ou função principal é feita da seguinte forma:
int main(int argc, const char * argv[])
{
return 0;
}
Alocação de memória
Existem duas formas para se alocar memória:
1) Automático, sem necessidade de declarar o
fim da utilização:
@autoreleasepool {}
2) Declaração manual:
NSAutoreleasePool * pool =[[NSAutoreleasePoll
alloc] init];
E ao fim:
[pool drain];
"Print"
Para escrever algo na tela, utiliza-se o
seguinte comando:
NSLog(@"TEXTO");
"Hello, World!"
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[])
{@autoreleasepool {
//insert codes here
NSLog(@"Hello, World!");}
return 0;
}
Declaração de Variáveis
Assim como no C, C++ e Java, a declaração
das variáveis no Objective-c inicia-se pelo tipo
dela, como: bool, int, double, float, string,
etc.
Exemplo:
int idade = 5;
float altura = 1.8;
Imprimindo Variáveis
Para imprimir variáveis, funciona da mesma
forma que no C e no C++, mudando apenas
algumas variáveis de impressões:
NSLog(@"Você tem %i anos e %f metros",
idade, altura);
Criando Classes
No Objective-C, utiliza-se a o início
@interface para declarar uma Classe.
Segue exemplo:
@interface NOME_DA_CLASSE: NSObject{
//declarando variáveis
int idade;
int peso;
}
Criando métodos
//Um método normal, apenas de execução
-(void) imprimir;
//Métodos que irão alterar alguma variável
deve declarar uma nova antes, como no
exemplo
-(void) setIdade: (int) i;
-(void) setPeso: (int) p;
Finalizar Classe
Para dizer ao programa que já terminamos a
declaração da Classe utilizamos o seguinte:
@end
Implementação dos Metodos da Classe
@implementation Pessoas
-(void) imprimir{
NSLog(@"Meu nome é Alamo e eu tenho %i anos e peso %i
kilos", idade, peso);}
-(void) setIdade:(int) i{
idade = i;}
-(void) setPeso:(int) p{
peso = p;}
@end
Explicando Implementação
Anteriormente existiu apenas a declaração,
naquela etapa dizemos ao programa quais
funções farão parte da classe declarada.
Agora, programamos toda a execução da
classe. Declarando toda as 3 funções ditas de
que iriam existir.
Variáveis auxiliares
Note que novamente declaramos as variáveis i
e p para as funções setIdade e setPeso,
respectivamente.
Estas variáveis auxiliares serão usadas todas as
vezes que chamadas estas funções para
realmente auxiliar na execução da função e
atribuição de um novo valor.
Finalizando Implementação
Assim como na Classe, para finalizar
declaramos:
@end
Brincando com Objetos
Pessoas * alamo = [[Pessoas alloc] init];
alamo = [Pessoas alloc];
alamo = [alamo init];
[alamo setNome:@"Alamo"];
[alamo setIdade:20];
[alamo setPeso:110];
[alamo setAltura:1.84];
[alamo imprimir];
String
NSString* nome = @"Alamo";
Pegando dados de Objeto
int alamoPeso = [alamo getPeso];
int alamoIdade = [alamo getIdade];
float alamoAltura = [alamo getAltura];
NSString* alamoNome = [alamo getNome];
Cálculos numéricos
Os cálculos numéricos em Objective-C tem
forma idêntica às demais linguagens de
programação:
int a= 10;
int b = 2;
int resultado = (a*b) + (a/b);
Pegar dado do Usuário
int usuario;
NSLog(@"Digite um número de
repetições para sua estrutura:");
scanf("%i", &usuario);
@property e @synthesize
Para funções que devem atribuir um valor a
uma variável da classe, a Apple criou uma
forma de facilitar esta atribuição:
Antes: -(void) setIdade: int i;
Agora: @porperty int idade;
Antes: -(void) setIdade: int i{idade=i;}
Agora: @synthesize idade;
-> (no main): Objeto.idade = 20;
Passar mais de uma var para Método
//em interface
-(void) idadePeso: (int) i : (int) p;
//em implementation
-(void) idadePeso:(int)i :(int)p{
idade = i;
peso = p;
}
//no corpo do main
[object idadePeso:22 :86];
Herança de Classes
- Criar classes filhas que herdam características da classe Pai.
- Tudo é herdado: variáveis, métodos, etc.
- Após ter uma classe setada, siga o exemplo:
#import "Pessoas.h"
@interface Filhos : Pessoas;
-(void) imprimirFilho;
@end
@implementation Filhos
-(void) imprimirFilho{
NSLog(@"%@", nome);}
@end
//Classe Filho / Herança
Filhos * murilo = [[Filhos alloc] init];
murilo.nome = @"Murilo";
[murilo imprimirFilho];
Classe Retângulo Parte 1 - Herança
@interface Retangulo : NSObject{
int altura, largura;}
@property int altura, largura;
-(int) area;
-(int) perimetro;
-(void) setAL:(int) a : (int) l; //Sim, mesmo com o property, coloca-se um comando
// para setar as variáveis.
// explicado mais a frente
@end
Retangulo * r = [[Retangulo alloc] init];
[r setAL:4:6]; // 4 para altura e 6 para largura
NSLog(@"O tamanho do retângulo é: %i x %i", r.altura, r.largura);
NSLog(@"Área = %i e Perímetro = %i", [r area], [r perimetro]);
Classe Retângulo Parte 2 - Herança
#import "Retangulo.h"
@interface Quadrado : Retangulo
-(void) setLado:(int) lado;
-(int) retornaLado;
@end
@implementation Quadrado : Retangulo
-(void) setLado:(int) lado{
[self setAL:lado:lado];}
-(int) retornaLado{
return altura;}
@end
// no main:
Quadrado * q = [[Quadrado alloc] init];
[q setLado: 10];
NSLog(@"Lado = %i", [q retornaLado]);
NSLog(@"Área = %i e Perímetro = %i", [q area], [q perimetro]);
- Note que é possível admitir que area e perimetro façam parte do Quadrado q mesmo não declarando
esses dentro da @interface nem da @implementation. Isso porque quando é uma Classe Herdeira, todas as
características da Classe Pai são HERDADAS.
Polimorfismo
- No Objective-c, é possível acrescetar métodos com o mesmo
nome para classes diferentes.
- Simplesmente, porque a chamada dos métodos é bem
particular.
Exemplo:
[ObjetoDaClasse1 somarNumeros];
e
[ObjetoDaClasse2 somarNumeros];
Tipo de Dado: id
- Este novo tipo de dado id é genérico e pode se associar a qualquer outro tipo de
dado, por exemplo: int, char, float, bool, etc.
- O id também é possível se associar a objetos, por exemplo: id nome = Objeto.
- A partir daí, é possível sempre chamar o Objeto como sendo nome da classe id.
EXEMPLO:
Numeros * n = [[Numeros alloc] init];
id exemploID = n;
[exemploID setNum:10 :15];
[exemploID add];
[exemploID imprimir];
Ignorando Erros de Programação
@try{
//o que quer testar}
@catch (NSException * e) {
NSLog(@"Existe um erro aqui"); // mensagem de erro ou opção
caso apresente um erro acima}
- Sem o try e o catch, caso na execução do programa for
encontrado um erro o programa pararia.
- Com o try e o catch, todas linhas de programação dentro do
try podem dar erro e o programa não parará sua execução, ou
seja, todas as linhas após o catch serão executadas.
Controle de Variáveis
Private: @private
- Declarado dentro da interface da Classe
- Declara variáveis restritas da Classe, ou seja,
nenhum método ou outra classe podem utilizar
estas variáveis.
Protected: @protected
- Declarado dentro da interface da Classe
- Declara variáveis protegidas da Classe, mas
que podem ser utilizadas por métodos e sub-
classes.
Controle de Variáveis - Exemplos
Private: @private
@interface Classe : NSObject{
@private
int a, b;
}
Protected: @protected
@interface Classe : NSObject{
@protected
int c, d;
}
Controle de Variáveis - Exemplos 2
Private e Protected:
@interface Classe : NSObject{
@private
int a, b;
char c;
@protected
int d, e;
char f;
}
Variáveis Globais
- Variáveis Globais são declaradas e atribuídas antes do main();
Exemplo:
int gTeste = 50; //utiliza-se normalmente 'g' antes no nome da variável global para identifica-la
int main (int argc, const char * argv[]) { ... }
@implementation VariavelGlobal
-(void) setVarGlob: (int) g{
extern int gNumero;
gNumero = g;}
-(void) imprimir{
extern int gNumero;
NSLog(@"O novo valor da variável global gNumero é: %in", gNumero);}
@end
//no main()
NSLog(@"Variável Global gNumero = %in", gNumero);
VariavelGlobal * var = [[VariavelGlobal alloc] init];
[var setVarGlob:20];
[var imprimir];
Variáveis Estáticas
CONTINUA ...

Mais conteúdo relacionado

Mais procurados

Features of c
Features of cFeatures of c
Features of c
Hitesh Kumar
 
Polymorphism in C++
Polymorphism in C++Polymorphism in C++
Polymorphism in C++
Rabin BK
 
C string
C stringC string
Arrays in c unit iii chapter 1 mrs.sowmya jyothi
Arrays in c unit iii chapter 1 mrs.sowmya jyothiArrays in c unit iii chapter 1 mrs.sowmya jyothi
Arrays in c unit iii chapter 1 mrs.sowmya jyothi
Sowmya Jyothi
 
Pointers in c - Mohammad Salman
Pointers in c - Mohammad SalmanPointers in c - Mohammad Salman
Pointers in c - Mohammad Salman
MohammadSalman129
 
Escape sequences
Escape sequencesEscape sequences
Escape sequences
Way2itech
 
Character Array and String
Character Array and StringCharacter Array and String
Character Array and String
Tasnima Hamid
 
Operator overloading
Operator overloadingOperator overloading
Operator overloading
Burhan Ahmed
 
Operators php
Operators phpOperators php
Operators php
Chandni Pm
 
Data types in c++
Data types in c++ Data types in c++
Data types in c++
RushikeshGaikwad28
 
C Programming: Control Structure
C Programming: Control StructureC Programming: Control Structure
C Programming: Control Structure
Sokngim Sa
 
C Programming Language Tutorial for beginners - JavaTpoint
C Programming Language Tutorial for beginners - JavaTpointC Programming Language Tutorial for beginners - JavaTpoint
C Programming Language Tutorial for beginners - JavaTpoint
JavaTpoint.Com
 
Pointers
PointersPointers
Pointers
sarith divakar
 
Exception handling c++
Exception handling c++Exception handling c++
Exception handling c++
Jayant Dalvi
 
inheritance c++
inheritance c++inheritance c++
inheritance c++
Muraleedhar Sundararajan
 
C pointer
C pointerC pointer
POO - 01 - Introdução ao Paradigma Orientado a Objetos
POO - 01 - Introdução ao Paradigma Orientado a ObjetosPOO - 01 - Introdução ao Paradigma Orientado a Objetos
POO - 01 - Introdução ao Paradigma Orientado a Objetos
Ludimila Monjardim Casagrande
 
Classes e Objectos JAVA
Classes e Objectos JAVAClasses e Objectos JAVA
Classes e Objectos JAVA
Pedro De Almeida
 

Mais procurados (20)

Functions in c++
Functions in c++Functions in c++
Functions in c++
 
Features of c
Features of cFeatures of c
Features of c
 
Polymorphism in C++
Polymorphism in C++Polymorphism in C++
Polymorphism in C++
 
C string
C stringC string
C string
 
Arrays in c unit iii chapter 1 mrs.sowmya jyothi
Arrays in c unit iii chapter 1 mrs.sowmya jyothiArrays in c unit iii chapter 1 mrs.sowmya jyothi
Arrays in c unit iii chapter 1 mrs.sowmya jyothi
 
Pointers in c - Mohammad Salman
Pointers in c - Mohammad SalmanPointers in c - Mohammad Salman
Pointers in c - Mohammad Salman
 
Preprocessor
PreprocessorPreprocessor
Preprocessor
 
Escape sequences
Escape sequencesEscape sequences
Escape sequences
 
Character Array and String
Character Array and StringCharacter Array and String
Character Array and String
 
Operator overloading
Operator overloadingOperator overloading
Operator overloading
 
Operators php
Operators phpOperators php
Operators php
 
Data types in c++
Data types in c++ Data types in c++
Data types in c++
 
C Programming: Control Structure
C Programming: Control StructureC Programming: Control Structure
C Programming: Control Structure
 
C Programming Language Tutorial for beginners - JavaTpoint
C Programming Language Tutorial for beginners - JavaTpointC Programming Language Tutorial for beginners - JavaTpoint
C Programming Language Tutorial for beginners - JavaTpoint
 
Pointers
PointersPointers
Pointers
 
Exception handling c++
Exception handling c++Exception handling c++
Exception handling c++
 
inheritance c++
inheritance c++inheritance c++
inheritance c++
 
C pointer
C pointerC pointer
C pointer
 
POO - 01 - Introdução ao Paradigma Orientado a Objetos
POO - 01 - Introdução ao Paradigma Orientado a ObjetosPOO - 01 - Introdução ao Paradigma Orientado a Objetos
POO - 01 - Introdução ao Paradigma Orientado a Objetos
 
Classes e Objectos JAVA
Classes e Objectos JAVAClasses e Objectos JAVA
Classes e Objectos JAVA
 

Semelhante a Aprendendo objective c - parte 1

RevisãoCompactaFuncoesPonteiro.pptx
RevisãoCompactaFuncoesPonteiro.pptxRevisãoCompactaFuncoesPonteiro.pptx
RevisãoCompactaFuncoesPonteiro.pptx
Claudia Ferlin
 
PHP fora da Web
PHP fora da WebPHP fora da Web
PHP fora da Web
Vinícius Campitelli
 
Java introdução ao java
Java   introdução ao javaJava   introdução ao java
Java introdução ao javaArmando Daniel
 
PowerShell
PowerShellPowerShell
Função malloc
Função mallocFunção malloc
Introdução a Linguagem C
Introdução a Linguagem CIntrodução a Linguagem C
Introdução a Linguagem Capolllorj
 
TDD em C++
TDD em C++TDD em C++
TDD em C++
thiagodp
 
DOJO - TDD com C++
DOJO - TDD com C++DOJO - TDD com C++
DOJO - TDD com C++
thiagodp
 
Refatoração de código com Capitão Nascimento versão completa
Refatoração de código com Capitão Nascimento versão completaRefatoração de código com Capitão Nascimento versão completa
Refatoração de código com Capitão Nascimento versão completa
Eduardo Bregaida
 
Tutorial dev cpp 002 - criação, leitura e alteração de arquivos
Tutorial dev cpp   002 - criação, leitura e alteração de arquivosTutorial dev cpp   002 - criação, leitura e alteração de arquivos
Tutorial dev cpp 002 - criação, leitura e alteração de arquivos
Flávio Freitas
 
Objective-C
Objective-CObjective-C
Objective-C
Microsoft
 
Ruby - Criando código para máquinas e humanos
Ruby - Criando código para máquinas e humanosRuby - Criando código para máquinas e humanos
Ruby - Criando código para máquinas e humanos
Gregorio Kusowski
 
Escrevendo modulos python com rust
Escrevendo modulos python com rustEscrevendo modulos python com rust
Escrevendo modulos python com rust
Bruno Rocha
 
Comandos de Controle de Programa em C
Comandos de Controle de Programa em CComandos de Controle de Programa em C
Comandos de Controle de Programa em C
Elaine Cecília Gatto
 
Aop Aspect J 1.5.4 Capitulo 04
Aop Aspect J 1.5.4 Capitulo 04Aop Aspect J 1.5.4 Capitulo 04
Aop Aspect J 1.5.4 Capitulo 04Diego Pacheco
 

Semelhante a Aprendendo objective c - parte 1 (20)

RevisãoCompactaFuncoesPonteiro.pptx
RevisãoCompactaFuncoesPonteiro.pptxRevisãoCompactaFuncoesPonteiro.pptx
RevisãoCompactaFuncoesPonteiro.pptx
 
PHP fora da Web
PHP fora da WebPHP fora da Web
PHP fora da Web
 
Java introdução ao java
Java   introdução ao javaJava   introdução ao java
Java introdução ao java
 
PowerShell
PowerShellPowerShell
PowerShell
 
Função malloc
Função mallocFunção malloc
Função malloc
 
Introdução a Linguagem C
Introdução a Linguagem CIntrodução a Linguagem C
Introdução a Linguagem C
 
TDD em C++
TDD em C++TDD em C++
TDD em C++
 
DOJO - TDD com C++
DOJO - TDD com C++DOJO - TDD com C++
DOJO - TDD com C++
 
Refatoração de código com Capitão Nascimento versão completa
Refatoração de código com Capitão Nascimento versão completaRefatoração de código com Capitão Nascimento versão completa
Refatoração de código com Capitão Nascimento versão completa
 
Aula5
Aula5Aula5
Aula5
 
Ling c
Ling cLing c
Ling c
 
Tutorial dev cpp 002 - criação, leitura e alteração de arquivos
Tutorial dev cpp   002 - criação, leitura e alteração de arquivosTutorial dev cpp   002 - criação, leitura e alteração de arquivos
Tutorial dev cpp 002 - criação, leitura e alteração de arquivos
 
Java para iniciantes
Java para iniciantesJava para iniciantes
Java para iniciantes
 
Apostila aed
Apostila aedApostila aed
Apostila aed
 
Objective-C
Objective-CObjective-C
Objective-C
 
Ruby - Criando código para máquinas e humanos
Ruby - Criando código para máquinas e humanosRuby - Criando código para máquinas e humanos
Ruby - Criando código para máquinas e humanos
 
Biblioteca Allegro
Biblioteca AllegroBiblioteca Allegro
Biblioteca Allegro
 
Escrevendo modulos python com rust
Escrevendo modulos python com rustEscrevendo modulos python com rust
Escrevendo modulos python com rust
 
Comandos de Controle de Programa em C
Comandos de Controle de Programa em CComandos de Controle de Programa em C
Comandos de Controle de Programa em C
 
Aop Aspect J 1.5.4 Capitulo 04
Aop Aspect J 1.5.4 Capitulo 04Aop Aspect J 1.5.4 Capitulo 04
Aop Aspect J 1.5.4 Capitulo 04
 

Aprendendo objective c - parte 1

  • 1. Objective-C Linguagem Nativa para Desenvolvimento iOS
  • 2. Importação de Bibliotecas Os arquivos de biblioteca possuem extensão ". h": #import <Foundation/Foundation.h>
  • 3. Main No Objective-C, a declaração da função main, ou função principal é feita da seguinte forma: int main(int argc, const char * argv[]) { return 0; }
  • 4. Alocação de memória Existem duas formas para se alocar memória: 1) Automático, sem necessidade de declarar o fim da utilização: @autoreleasepool {} 2) Declaração manual: NSAutoreleasePool * pool =[[NSAutoreleasePoll alloc] init]; E ao fim: [pool drain];
  • 5. "Print" Para escrever algo na tela, utiliza-se o seguinte comando: NSLog(@"TEXTO");
  • 6. "Hello, World!" #import <Foundation/Foundation.h> int main(int argc, const char * argv[]) {@autoreleasepool { //insert codes here NSLog(@"Hello, World!");} return 0; }
  • 7. Declaração de Variáveis Assim como no C, C++ e Java, a declaração das variáveis no Objective-c inicia-se pelo tipo dela, como: bool, int, double, float, string, etc. Exemplo: int idade = 5; float altura = 1.8;
  • 8. Imprimindo Variáveis Para imprimir variáveis, funciona da mesma forma que no C e no C++, mudando apenas algumas variáveis de impressões: NSLog(@"Você tem %i anos e %f metros", idade, altura);
  • 9. Criando Classes No Objective-C, utiliza-se a o início @interface para declarar uma Classe. Segue exemplo: @interface NOME_DA_CLASSE: NSObject{ //declarando variáveis int idade; int peso; }
  • 10. Criando métodos //Um método normal, apenas de execução -(void) imprimir; //Métodos que irão alterar alguma variável deve declarar uma nova antes, como no exemplo -(void) setIdade: (int) i; -(void) setPeso: (int) p;
  • 11. Finalizar Classe Para dizer ao programa que já terminamos a declaração da Classe utilizamos o seguinte: @end
  • 12. Implementação dos Metodos da Classe @implementation Pessoas -(void) imprimir{ NSLog(@"Meu nome é Alamo e eu tenho %i anos e peso %i kilos", idade, peso);} -(void) setIdade:(int) i{ idade = i;} -(void) setPeso:(int) p{ peso = p;} @end
  • 13. Explicando Implementação Anteriormente existiu apenas a declaração, naquela etapa dizemos ao programa quais funções farão parte da classe declarada. Agora, programamos toda a execução da classe. Declarando toda as 3 funções ditas de que iriam existir.
  • 14. Variáveis auxiliares Note que novamente declaramos as variáveis i e p para as funções setIdade e setPeso, respectivamente. Estas variáveis auxiliares serão usadas todas as vezes que chamadas estas funções para realmente auxiliar na execução da função e atribuição de um novo valor.
  • 15. Finalizando Implementação Assim como na Classe, para finalizar declaramos: @end
  • 16. Brincando com Objetos Pessoas * alamo = [[Pessoas alloc] init]; alamo = [Pessoas alloc]; alamo = [alamo init]; [alamo setNome:@"Alamo"]; [alamo setIdade:20]; [alamo setPeso:110]; [alamo setAltura:1.84]; [alamo imprimir];
  • 18. Pegando dados de Objeto int alamoPeso = [alamo getPeso]; int alamoIdade = [alamo getIdade]; float alamoAltura = [alamo getAltura]; NSString* alamoNome = [alamo getNome];
  • 19. Cálculos numéricos Os cálculos numéricos em Objective-C tem forma idêntica às demais linguagens de programação: int a= 10; int b = 2; int resultado = (a*b) + (a/b);
  • 20. Pegar dado do Usuário int usuario; NSLog(@"Digite um número de repetições para sua estrutura:"); scanf("%i", &usuario);
  • 21. @property e @synthesize Para funções que devem atribuir um valor a uma variável da classe, a Apple criou uma forma de facilitar esta atribuição: Antes: -(void) setIdade: int i; Agora: @porperty int idade; Antes: -(void) setIdade: int i{idade=i;} Agora: @synthesize idade; -> (no main): Objeto.idade = 20;
  • 22. Passar mais de uma var para Método //em interface -(void) idadePeso: (int) i : (int) p; //em implementation -(void) idadePeso:(int)i :(int)p{ idade = i; peso = p; } //no corpo do main [object idadePeso:22 :86];
  • 23. Herança de Classes - Criar classes filhas que herdam características da classe Pai. - Tudo é herdado: variáveis, métodos, etc. - Após ter uma classe setada, siga o exemplo: #import "Pessoas.h" @interface Filhos : Pessoas; -(void) imprimirFilho; @end @implementation Filhos -(void) imprimirFilho{ NSLog(@"%@", nome);} @end //Classe Filho / Herança Filhos * murilo = [[Filhos alloc] init]; murilo.nome = @"Murilo"; [murilo imprimirFilho];
  • 24. Classe Retângulo Parte 1 - Herança @interface Retangulo : NSObject{ int altura, largura;} @property int altura, largura; -(int) area; -(int) perimetro; -(void) setAL:(int) a : (int) l; //Sim, mesmo com o property, coloca-se um comando // para setar as variáveis. // explicado mais a frente @end Retangulo * r = [[Retangulo alloc] init]; [r setAL:4:6]; // 4 para altura e 6 para largura NSLog(@"O tamanho do retângulo é: %i x %i", r.altura, r.largura); NSLog(@"Área = %i e Perímetro = %i", [r area], [r perimetro]);
  • 25. Classe Retângulo Parte 2 - Herança #import "Retangulo.h" @interface Quadrado : Retangulo -(void) setLado:(int) lado; -(int) retornaLado; @end @implementation Quadrado : Retangulo -(void) setLado:(int) lado{ [self setAL:lado:lado];} -(int) retornaLado{ return altura;} @end // no main: Quadrado * q = [[Quadrado alloc] init]; [q setLado: 10]; NSLog(@"Lado = %i", [q retornaLado]); NSLog(@"Área = %i e Perímetro = %i", [q area], [q perimetro]); - Note que é possível admitir que area e perimetro façam parte do Quadrado q mesmo não declarando esses dentro da @interface nem da @implementation. Isso porque quando é uma Classe Herdeira, todas as características da Classe Pai são HERDADAS.
  • 26. Polimorfismo - No Objective-c, é possível acrescetar métodos com o mesmo nome para classes diferentes. - Simplesmente, porque a chamada dos métodos é bem particular. Exemplo: [ObjetoDaClasse1 somarNumeros]; e [ObjetoDaClasse2 somarNumeros];
  • 27. Tipo de Dado: id - Este novo tipo de dado id é genérico e pode se associar a qualquer outro tipo de dado, por exemplo: int, char, float, bool, etc. - O id também é possível se associar a objetos, por exemplo: id nome = Objeto. - A partir daí, é possível sempre chamar o Objeto como sendo nome da classe id. EXEMPLO: Numeros * n = [[Numeros alloc] init]; id exemploID = n; [exemploID setNum:10 :15]; [exemploID add]; [exemploID imprimir];
  • 28. Ignorando Erros de Programação @try{ //o que quer testar} @catch (NSException * e) { NSLog(@"Existe um erro aqui"); // mensagem de erro ou opção caso apresente um erro acima} - Sem o try e o catch, caso na execução do programa for encontrado um erro o programa pararia. - Com o try e o catch, todas linhas de programação dentro do try podem dar erro e o programa não parará sua execução, ou seja, todas as linhas após o catch serão executadas.
  • 29. Controle de Variáveis Private: @private - Declarado dentro da interface da Classe - Declara variáveis restritas da Classe, ou seja, nenhum método ou outra classe podem utilizar estas variáveis. Protected: @protected - Declarado dentro da interface da Classe - Declara variáveis protegidas da Classe, mas que podem ser utilizadas por métodos e sub- classes.
  • 30. Controle de Variáveis - Exemplos Private: @private @interface Classe : NSObject{ @private int a, b; } Protected: @protected @interface Classe : NSObject{ @protected int c, d; }
  • 31. Controle de Variáveis - Exemplos 2 Private e Protected: @interface Classe : NSObject{ @private int a, b; char c; @protected int d, e; char f; }
  • 32. Variáveis Globais - Variáveis Globais são declaradas e atribuídas antes do main(); Exemplo: int gTeste = 50; //utiliza-se normalmente 'g' antes no nome da variável global para identifica-la int main (int argc, const char * argv[]) { ... } @implementation VariavelGlobal -(void) setVarGlob: (int) g{ extern int gNumero; gNumero = g;} -(void) imprimir{ extern int gNumero; NSLog(@"O novo valor da variável global gNumero é: %in", gNumero);} @end //no main() NSLog(@"Variável Global gNumero = %in", gNumero); VariavelGlobal * var = [[VariavelGlobal alloc] init]; [var setVarGlob:20]; [var imprimir];