Escolar Documentos
Profissional Documentos
Cultura Documentos
Requisitos
Computador Apple Macintosh com verso mais atual do
sistema operacional Mac OS X
ltima verso do aplicativo XCode (IDE da Apple)
O XCode inclui um ambiente de desenvolvimento
e um simulador para dispositivos iOS (entre outras
ferramentas)
@end
Exemplo
@end
Definindo um Mtodo
nome do tipo do
tipo: nome do primeiro segundo
+- mtodo parmetro parmetro
@implementation NOME_DA_CLASSE
@end
Exemplo
@implementation Ponto2D
- (void) print
{
NSLog(@"Ponto: %d,%d",x,y);
}
@end
@property
@interface Ponto2D : NSObject
{
int x;
int y;
}
@property int x;
@property int y;
@end
@synthesize
@implementation Ponto2D
@synthesize x,y;
- (void) print
{
NSLog(@"Ponto: %d,%d",x,y);
}
@end
Criando um Objeto
ou
position.x = 10;
Chamando Mtodos
@synthesize x,y;
[self print];
}
- (void) print
{
NSLog(@"Ponto: %d,%d",x,y);
}
@end
Mensagens para Nil
[position print];
Inicializando Objetos
if(self)
{
x = 0;
y = 0;
}
return self;
}
Estruturas de Dados em Objective-c
@interface CLASSE_EXISTENTE
(NOME_CATEGORIA)
@end
Forma Geral
@implementation CLASSE_EXISTENTE
(NOME_CATEGORIA)
@end
Exemplo
- (NSString*) hackerCase;
@end
Exemplo
#import "Fun+NSString.h"
- (NSString*) hackerCase
{
NSMutableString* temp = [[NSMutableString new] autorelease];
for(int i = 0; i < [self length]; i++)
{
unichar letra = [self characterAtIndex:i];
if(i%2) letra = tolower(letra);
else letra = toupper(letra);
[temp insertString:[NSString stringWithCharacters:&letra length:1]
atIndex:[temp length]];
}
return temp;
}
@end
Perigos no uso de Categorias
Os mtodos de um protocolo no
possuem uma implementao, e devem
ser implementados por quem adota o
protocolo.
Forma Geral
@protocol NOME_DO_PROTOCOLO
@optional
@end
Forma Geral
...
@end
Exemplo
@interface Ponto2D : NSObject <NSCoding>
{
int x;
int y;
}
@property int x;
@property int y;
@end
Exemplo
@implementation Ponto2D
...
- (void)encodeWithCoder:(NSCoder *)encoder
{
[encoder encodeInt:x forKey:@"PX"];
[encoder encodeInt:y forKey:@"PY"];
}
@end
Exemplo
stringByAppendingPathComponent:@"Teste.archive"];
[NSKeyedArchiver archiveRootObject:pt toFile:archivePath];