Vous êtes sur la page 1sur 11

Alguns aspectos sobre objective-C

Factores a ter em ateno:


Case sensitive; O nome das classes deve ser capitalizado (ex: Aula); Nas variveis os nomes comeam com minscula. A palavra seguinte capitalizada (ex: intVariavel). Muitos conceitos so os mesmos de outras linguagens de programao.

Exemplo primeiro programa:


#import <Foundation/Foundation.h> int main (int argc, constchar *arg[]) { //esta parte do cdigo gerada automticamente com o template do xcode NSLog(@"Hello World!"); return 0; //existem vrias palavras em objective-C comeadas por NS (Next Step) }

Comentrios
Para comentar o cdigo, semelhana de outras linguagens, utiliza-se: // Este um comentrio de linha /* Este um Comentrio de blocos de linhas */

Tipos de dados
Os tipos de dados, so iguais aos de outras linguagens: Nome char int float double Formato %c %i %f %d

Declarao e inicializao de variveis


int i; float f = 4,7; char c ='a' ; Operaes com variaveis int x=4 NSLog (@x %i , x);

Operadores aritmticos
+ * / % Soma; Subtraco; Multiplicao; Diviso; Mdulo;

Operadores relacionais e equivalentes


== != > < >= <= Significa igual a . Significa diferente de Significa maior que Significa menor que Significa maior ou igual Significa menor ou igual

Atribuies Compostas
Estes operadores permitem que sejam realizadas operaes matemticas e que a atribuio do resultado seja apresentada de maneira simplificada. Os operadores so: += -= *= /= %= x+=1; // Equivale a x=x+1; x-=3; // Equivale a x=x-3; x*=2; // Equivale a x=x*2;

x/=y; // Equivale a x=x/y; x*=y+z; // Equivale a x=x*(y+z); x%=2; // Equivale a x=x%2;

Tipos de dados Booleanos


Os valores que podem assumir so YES ou NO. Ex:

BOOL saoIguais (int x, int y) if (x==y) return YES; else return NO;

Estrutura Condicional
If e If Else Ex: int a=15; int b=16; if (a==b) NSLog (@"igual"); else NSLog (@"no igual") While e For Exemplos: Ciclo While while (a==b){ //faz qualquer coisa } Ciclo For for (int i=0; i>15; i++){ //faz qualquer coisa }

Switch Ex: switch (a){ case 1: NSLog (@"a 1"); break; case 2: NSLog (@"a 2"); break; case 3: NSLog (@"a 3"); break; case 4: NSLog (@"a 4"); break; default: NSLog (@" a desconhecido"); break; } //fim do switch Estes so alguns exemplos sobre a lgica de programao, e parte-se do princpio que j so dados adquiridos anteriormente. Serve apenas como exemplo introduo do objective-C.

Objective-C Classes
main.m (pode ser considerada a funo principal)
Como exemplo, se pretender criar uma classe com o nome de quadrado, o xcode cria dois ficheiros: rectangulo.h (aqui onde esto os nossos mtodos e variveis como por exemplo o nome, return type e argumentos).

rectangulo.m
Os ficheiros que tiverem a extenso .m, so as chamadas classes de implementao. onde se vai escrever todo o cdigo que executa tudo o que est descrito no ficheiro de interface Os ficheiros que tiverem a extenso .h, so as chamadas classes de interface. onde se define a lista de todos os mtodos e propriedades que a classe vai utilizar.
Exemplo @interface (.h):
#import <Foundation/Foundation.h> @interface Rectangulo : NSObject { // aqui esto definidas as variveis @private int width; @private int height; @private int area; }

// aqui esto definidos os mtodos -(void) setWidth : (int) w; -(void) setHeight : (int) h; -(void) area; // -(void) o que vai retornar; // setWidth nome do mtodo; // int(w) argumento que o mtodo vai receber @end

Exemplo de Implementation file (.m):


#import "Rectangulo.h" @implementation Rectangulo -(void) setWidth:(int)w { width = w; } -(void) setHeight:(int)h { height = h; } -(void) area { area = height * width; NSLog(@"A area do rectangulo %i" ,area); } @end

A classe Rectangulo est definida, agora ter de ser usada tambm na classe principal (main.m).
#import <UIKit/UIKit.h> #import "Rectangulo.h" int main(int argc, const char *argv[]) { Rectangulo *rect =[[Rectangulo alloc]init]; [rect setHeight:2]; [rect setWidth:7]; [rect area]; [rect release]; //sempre que utiliza uma instancia, no final ter sempre de ser libertada return 0; }

Os mtodos devem sempre ficar dentro dos [ ... ] (ao contrrio de outras linguagens), quando so chamados. Resumindo o que deve constar em cada um dos ficheiros: Rectangulo.h @interface @end

Rectangulo.m @implementation @end main.m #import "Rectangulo.h"

Multiplos Argumentos
At agora foi utilizado apenas um argumento. Pode em todo o caso ter necessidade de criar mais em simultneo. Ex: -(void) metodoUm:(int) a; //Apenas um argumento -(void) metodoDois:(int) b : (int) c; //Dois Argumentos Como devem ser chamados: [metodoUm : 4]; //chama o mtodo um [metodoDois : 8 : 9]; //chama o mtodo dois com dois argumentos Como em todas as linguagens, existem constructores e destructores.

Constructor:
-(id) init { self=[super init]; if (self!=nil) { //as inicializaes ficariam aqui posicionadas } return self }

Destructor:

-(void) dealloc { //liberta os objetos adquiridos aqui [superdealloc]; }

Strings.

Como declarar:
NSString *str; Como lhe atribuir um valor: NSString *str2=@"ol"; Como registar (imprimir) a String (NSLog): NSLog(@"%@ ", str2); existem alguns mtodos j criados que podemos usar com a string: int x = [str2 lenght]; //para ver o comprimento da string ou ento: str = [str2 uppercaseString]; //se quiser que a primeira letra da string fique maiuscula

Mutable Strings
Se quiser criar uma String e pretender modificar o seu contedo, deve criar uma mutable String. Como declarar. String normal - NSString *str=@"O meu nome "; Mutable String - NSMutableString *mutstr; Como lhe atribuir um valor: mutstr =[NSMutableString StringWithFormat :@"Esta uma mutable String"]; Como posso manipular os dados dentro de uma String deste tipo: mutstr = [NSMutableString stringWithStrings: str]; Neste exemplo, o que vai acontecer que o contedo da String mutstr Esta uma mutable String vai ser substitudo pelo que estiver em stringWithStrings : str. Olhando para o exemplo da string nrmal, o str contm a string O meu nome .

Se quiser adicionar mais uma string: [mutstr insertString:@"Ricardo" atIndex:4]; Basta utilizar o mtodo insertString e atribuir-lhe uma string indicando a que indexe vai ser atribuido: O Index 0 meu Index 1 nome Index 2 Index 3 A string definida ir para o index 4. Fica ento O meu nome Ricardo.

AppendString:
muito utilizado quando se pretende adicionar algo no final da string. [mutstr appendString:@"Nunes"]; O resultado ficar O meu nome Ricardo Nunes.

Arrays
O objective C lida com os elemntos dentro dos arrays como objetos. NSArray *gaveta = [NSArray arrayWithObjects:@"guardanapos", @"garfos", @"facas", nil]; //O nil significa que o final do array. Se pretender aceder a algum elemento: NSLog(@"%@", [gaveta objectAtIndex:2];

Mutable Arrays
Este tipo de array deve ter uma capacidade atribuda.
NSMutableArray *counter = [NSMutableArray arrayWithCapacity:24] for ( int i=0;i<100;i+2){ [counter addObject:[NSNumber numberWithInteger:i]];

} [counter count] //retorna o comprimento do array NSLog (@"numero=%i", [counter objectAtIndex: x] integerValue);

Mutable Arrays
NSMutableArray *Counter = [NSMutableArray arrayWithCapacity:24] //Este tipo de array deve ter uma capacidade atribuda. For (int i = 0;i < 100; i+2) { [counter addObject : [NSNumber numberWithInteger: i]]; } [counter Count] //returns length of array NSLog (@ number = % I, [counter ObjectAtIndex: x] integerValue];

NSDictionary
NSMutableDictionary *mydict = [NSMutableDictionary dictionary]; [mydict setObject: @"Hello, este um exemplo de dicionrio for Key: @ bem vindo]; NSLog (@ %@,[mydict objectForKey: @"bem vindo"]); //O NSDictionary compost pelo objecto e pela chave (Key).

Synthesized Accessor Methody


@ property .h @ synthesize .m Rectangle *rect = [[rectangle alloc]init]; rect.width = 40; rect.height = 20; [rec.print]; Herana @interface Sphere: Circle { // ... cdigo } Para fazer o override de um mtodo:

3 condies: Deve ter o mesmo nome; Deve retomar o mesmo tipo; Deve ter o mesmo n de argumentos.

Type ID
Este tipo, pode conter qualquer valor Int x = 50; Id y; Y = x // 0 y fica 50 NSLog (@ %@, y); Char c = a; Y=c; NSLog (@ %@, y);

Introduo ao XCODE
Views
3 ficheiros:
View1.h View1.m View1.xib (nib)

Em vez de ser main (){ Passa a ser ViewDidLoad (){ { Tipos de aplicaes: Single View Application S tem uma View, a aplicao corre toda numa nica vista. Aplicao mais simples.

Utility Application Semelhante Single View. A aplicao corre numa View, e se carregar no info, aparece outra janela com info. Page Based Application Boa para livros e histrias. Permite mudar de pginas. Tabbled Application Aplicao que contm vrioas Views/Tabs. Tem uma Tab bar. Master.Detal Application Aparecem duas vistas no ecr. Boa para Tablets. Costuma ter, esquerda, a View principal e na esquerda a segunda vista associada a ela.

Este ficheiro serve apenas de complemento com relao Linguagem Objective-C.

Vous aimerez peut-être aussi