Você está na página 1de 10

Objective-C

Introduo

Copyright 2011 - Vtor Carreira (vitor.carreira@ipleiria.pt) - Instituto Politcnico de Leiria


1

Requisitos
Conhecimento nvel mdio: Linguagem de programao C / C++ Conceitos de Programao Orientada aos Objectos
(encapsulamento, herana, polimorsmo)

Contexto histrico
1972 - Linguagem de programao C 1980 - Smalltalk (1 linguagem OO) 1983 - C++ uma linguagem OO concebida de raiz 1986 - Objective-C

preservando grande parte da sintaxe da linguagem C uma extenso da linguagem C que incorpora conceitos da linguagem Smalltalk

Porqu Objective-C?
Escolhida como linguagem principal da empresa NeXT fundada
por Steve Jobs para desenvolver o sistema operativo NeXTStep do Mac OS X (2001) utilizando Objective-C

Em 1996 a Apple adquire a NeXT e inicia o desenvolvimento Objective-C no uma escolha arbitrria mas sim um legado
4

Sintaxe

Objective-C 2.0 um superset do standard C99:

Todas as caractersticas da linguagem C so preservadas: case sensitive, strongly typed, todas as variveis devem ser declaradas antes de serem utilizadas, declarao vs denio de funes, visibilidade local vs global de variveis, passagem de parmetros, ponteiros, ... Mantm-se os operadores, tipos de instrues e estruturas de controlo Extenses linguagem C so identicadas atravs do smbolo @ Extenso dos cheiros com cdigo fonte: .m e .h Conveno de nomes para variveis: lowerCamelCase Conveno de nomes para funes globais: UpperCamelCase

Novas caractersticas:

Tipos de dados
Tipos de dados primitivos: char, int, oat, double Modicadores: unsigned, short, long Por omisso todos os tipos inteiros possuem sinal Tipos enumerados: keyword enum Estruturas: keyword struct
6

Pr-Processador
Todas as linhas iniciadas com # so processadas pelo pr-processador #import - inclui uma nica vez o cheiro referido #dene - dene uma macro #if, #else, #endif - pr-processamento condicional
#import <Foundation/Foundation.h> #define PI 3.14159265 int main (int argc, const char * argv[]) { // Macro definida quando se compila na configurao Debug #if DEBUG NSLog(@"Debug mode on"); #endif }

main.m

Ol mundo

#import <Foundation/Foundation.h> /** * Comentrios de vrias linhas */ int main (int argc, const char * argv[]) { // Relacionado com gesto de memria (ignorar por enquanto) NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; // Comentrio de uma nica linha NSLog(@"Ol mundo em Objective-C"); // NSLog semelhante ao printf // Relacionado com gesto de memria [pool drain]; return 0; }

Demo Ol Mundo e Xcode

Bibliograa
Learning Objective-C: A Primer
https://developer.apple.com/library/ios/#referencelibrary/ GettingStarted/Learning_Objective-C_A_Primer/

10

Você também pode gostar