A linguagem Objective-C, nasceu na empresa NeXT antiga empresa criada pelo Steve Jobs quando este saiu da Apple. Quando em 1996 a Apple compra a empresa NeXT começa a desenvolver então na linguagem Objective-C.
Esta linguagem é orientada a objectos, é uma extensão à linguagem C e case-sensitive.
Há dois tipos de ficheiros em objective-c o ficheiro .h (interface) e o ficheiro source o ficheiro .m.
Header file (.h)
No ficheiro .h inicia-se com o @interface seguido do nome da classe e do nome da classe Pai. Como mostra a figura, declaramos os tipos das variáveis e os nomes e no final declaramos os métodos da nossa classe.
Como podemos ver na figura, temos duas diferenças na declaração dos metodos, o primeiro metodo inicia-se com o sinal de “-” e o segundo metodo inicia-se com o sinal de “+”, o que quer dizer que os metodos inicializados com o sinal de “-” são metodos da instancia e metodos inicializados com o sinal de “+” são metodos da classe.
Métodos:
Os metodos em obj-c declaram-se da seguinte maneira:
Mais detalhadamente, como já foi referido acima, o “Method type Identifier” é o sinal de “-” ou o sinal de “+”. O tipo de retorno da nossa função.
As keywords são como o nome diz as keywords que irão aparecer quando chamarmos o nosso metodo para seguido do sinal de “:” indicarmos qual o objecto a mandar por parametro.
O “Parameter type” é o tipo da variavel esperada para a keyword e o “Parameter names” são os nomes depois que vão ser utilizados para manipular mos os dados quando formos programar no ficheiro .m o que vai fazer o nosso metodo, processo semelhante ao Java.
Propriedades:
As propriedades são utilizadas para substituir os metodos de acesso as váriaveis, ou seja, declaramos uma variavel e ele automáticamente cria os getters e os setters para ir buscar os valores das variaveis e atribuir valores as variaveis, se assim o quisermos.
Exemplo da uma declaração de uma propriedade:
@property (readonly) UIView *rootView; // Declare only a getter method.
As propriedades permitem definir o tipo de acesso a váriavel, a duração da variavel em memória.
Como podemos ver no exemplo, a variavel é readonly, ou seja, só vai ser construido automáticamente o getter à variavel para se conseguir ir buscar os dados do objeto.
Os outros tipos de parametros para o property são:
Em ARC (Automatic Reference Counting)
- strong / weak : Duração da variavel em memória;
- readwrite/readonly: Escrita e leitura da variavel ou só leitura da variavel;
- nonatomic / atomic.
Sem ARC:
- retain / assign.
No ficheiro .m para aceder a propriedade utiliza-se o @synthesize.
Utilizando o exemplo acima, no nosso ficheiro .m, só teriamos que escrever @synthesize rootView;
Gestão de memória:
A gestão de memória em objective-c pode ser feita de duas maneiras, através do ARC (Automatic Reference Counting), em que o utilizador não necessita de se preocupar com a gestão de variaveis instanciadas ou então atraves de MMR (“Manual Retain-Release) em que neste caso o utilizador tem que fazer “release” das variaveis que já não necessita para não estarem a ocupar espaço em memória.
Exemplo de uma classe:
@implementation MyClass
- (id)initWithString:(NSString *)aName
{
self = [super init];
if (self) {
name = [aName copy];
}
return self;
}
+ (MyClass *)createMyClassWithString: (NSString *)aName
{
return [[[self alloc] initWithString:aName] autorelease];
}
@end