Curs Programació MacOSX – Objective-C (I)


Aquesta entrada és la número 2 de 28 de la sèrie Curs de programació

Hola Mon

El primer que farem és un senzill Hola Mon. Realment es podria fer exactament de la mateixa manera que el fem a C, ja que Objective-C és una extensió de C. Però mirarem d’utilitzar les eines de l’objective-c i les funcions de les frameworks fetes amb aquest llenguatge.

Ho farem a partir del codi que ens ofereix l’XCode al crear un projecte tipus “Foundation Tool” (el podeu trobar en la secció “Command Line Utility”. El nom del projecte serà “HolaMon”.

Aquest és el codi que ens apareix, que analitzem a continuació.

:: HolaMon.m

#import int main (int argc, const char * argv[]) {

    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];

// insert code here...

    NSLog(@"Hello, World!");

[pool drain];

    return 0;

}

El primer que veiem és el nom del fitxer. En Objective-C l’extensió dels fitxers acostuma a ser “.m” i “.h”. El nom del fitxer té relació amb el nom del projecte.

La primera línia conté un “#import” això és semblant a un “#include” de C, però té la peculiaritat que no torna a carregar fitxers prèviament carregats evitant errors de doble definició. El fitxer Foundation.h conté les definicions de la framework Foundation.

Després tenim la definició de la funció main que no té cap secret pels qui han programat amb C i C++.

La línia que comença amb “NSAutoreleasePool” no hi aprofundirem, però serveix per a la gestió de la memòria. Però com que aquí no gestionarem la memòria de l’aplicació fins i tot la podríem eliminar.

Clarament, la següent línia ens diu en anglès que afegim allí el codi. I la següent línia és on hi tenim el nostre codi en anglès (podeu canviar-lo al català). Aquesta línia conté la funció NSLog que si mirem a l’ajuda ens diu que ens permet treure un missatge per la sortida d’error. Veiem que la cadena de text va precedida del símbol “@” arroba, això indica que és un objecte NSString, un cadena de text en format unicode. Un dels avantatges de programar amb Objective-C és no haver-se de preocupar de la codificació, doncs l’unicode permet representar qualsevol codificació de text.

La penúltima línia té a veure amb la primera, que servia per gestionar la memòria, així que no l’explicarem. Si esborrem la primera línia aquesta també cal esborrar-la.

La última línia només retorna el número zero “0″ que indica que el programa a acabat sense cap error.

Executar el codi

Si compileu el programa podeu veure’n el resultat de diferents formes. Si l’executeu des de l’XCode caldrà que obriu la consola (Menú -> Run -> Console) i veureu els missatge “Hola Món”. Si l’executeu des d’un terminal caldrà que entreu en el directori on està compilat el programa “build/Release” o “build/Debug” i executar-lo “./HolaMon” i ja podeu veure el resultat.

Compilar el programa des de la línia de comandes és senzill “gcc -framework Foundation -o HolaMon HolaMon.m”. Podeu veure que s’ha hagut de definir les frameworks que utilitzem. Això ens crearà l’executable “HolaMon” en el mateix directori on hi ha el codi font.

Conclusió

Bé, sembla senzill oi. Només cal tenir en compte les diferències de l’Objective-C i conèixer les classes de les diferents frameworks. La pròxima entrada tractarà de les principals diferències que hi ha respecte el llenguatge C.

Si heu de comentar qualsevol cosa, podeu fer-ho en aquest tema del fòrum.