Objective-C Uma iniciacao aos conceitos e a linguagempor Alberto Martins algol@astro.iagusp.brIntroducaoEste breve tutorial foi criado para suprir a falta de informacao sobre a linguagem Objective-C no Brasil, e com isso incentivar sua popularizacao. Para aqueles que ja programam em C, a adaptacao ao paradigma de orientacao a objetos por meio da linguagem Objective-C ocorre de forma simples e natural, visto que sintaticamente apenas poucas construcoes sao adicionadas. Observamos que no momento este nao e um tutorial completo, ou seja, conhecer um pouco de C sera nao apenas de grande valia, como praticamente necessario para construir programas mais complexos. Devemos salientar tambem que por enquanto nao iremos utilizar o framework Foundation, nem qualquer outro, nos mantendo nos rudimentos da linguagem.A linguagem Objective-C foi criada por Brad Cox e sua empresa, a StepStone Corporation, no inicio da decada de 80. Em 88 ela foi licenciada pela NeXT, tornando-se a linguagem de desenvolvimento do NeXTstep. O suporte do GNU/gcc foi acrescentado em 1992. Em 1994 as empresas NeXT Computer e Sun Microsystems criaram uma especificacao do NeXTstep conhecida como OpenStep. A implementacao da Free Software Foundation da especificacao OpenStep e denominada GNUStep.Atualmente Objective-C e utilizada como a principal linguagem de programacao do MacOS X, que e baseado no NeXTstep. A versao da Apple do ambiente NeXTStep/GNUStep com adicoes e denominada Cocoa.CaracteristicasObjective-C e apenas um conjunto de adicoes a linguagem C. Ela da ao C suporte a construcoes orientadas a objetos como as da Smalltalk.Objective-C suporta polimorfismo, posing, categorias, e e uma linguagem dinamica, com typing e binding dinamicos. Com Objective-C voce pode adicionar classes e categorias em tempo de execucao de forma facil. E tudo isso com uma sintaxe de mensagem simples e elegante: olhe os titulos destas subsecoes e voce ja sabera como conversar com os objetos!Objective-C realiza chamadas de mensagem dinamicas rapidamente, entre 1,5 e 2,0 vezes o tempo de uma chamada de funcao em C.Programacao Orientada a ObjetosO conceito de orientacao a objetos e na verdade algo muito simples. Diariamente utilizamos objetos para realizar tarefas, e programar OO nao e nada alem disso.Programadores mais antigos estao acostumados a pensar a programacao separando dados e fucoes que seriam aplicadas neles. A propria forma de pensar era diferente; para alguns problemas era obvia a necessidade de uma integracao maior entre os dados e as funcoes, e isto foi o aparecimento do objeto.Tomando um exemplo simples: supomos que voce possua uma televisao. A nao ser que voce seja um milhonario ou um professor pardal, essa televisao deve ter saido de uma linha de montagem, sendo assim igual a muitos outros aparelhos do mesmo modelo. Entretanto essa e a sua televisao, e ela possui um numero de identificacao (ou numero serial) unico.No exemplo acima e agora traduzindo para o conceito de OO, sua televisao e uma instancia da classe televisao. E cada vez que uma nova televisao e produzido, uma nova instancia da classe televisao e criada.Existem tambem certas coisas que voce pode fazer com a sua televisao, como ligar e desligar, modificar o volume e configuracoes de cor, ligar o PIP, etc. As funcoes realizadas