Escolar Documentos
Profissional Documentos
Cultura Documentos
Introduo
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
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; }
Bibliograa
Learning Objective-C: A Primer
https://developer.apple.com/library/ios/#referencelibrary/ GettingStarted/Learning_Objective-C_A_Primer/
10