Entradas etiquetadas como ‘Objective-C’

Escrito por Iván Alonso el Lunes 16 de Febrero de 2009

La explicación es sencilla, en Objective-C la creación de un objeto está separada en dos fases diferenciadas, al contrario que otros lenguajes como C++. Por un lado está el alojamiento en memoria (alloc) y por otro la inicialización (init).

Cuando se va a llamar al init, el self de un objeto siempre apunta al objeto devuelto por alloc. Aunque no es habitual, existe la posibilidad de que, en la segunda fase de la creación, en el init del padre, se elimine el objeto actual y se cree uno nuevo, que sea el que se devuelve. Generalmente esto no suele usarse, por lo que la instrucción:

[super init];
// código de inicialización

generalmente es válida pero, para asegurarnos, no está de más que nuestras inicializaciones sean del tipo

if (self = [super init])
{
    // código de inicialización
}

Y terminar siempre con un:

return self;
Escrito por Iván Alonso el Martes 14 de Octubre de 2008

Algo  bueno que tiene el entorno Xcode y su compilador es que es compatible con ambos lenguajes (Objective-C y C++), incluso al nivel de mezclar el código en los mismos archivos. Lo único necesario es nombrar los archivos de C++ como .h/.cpp y los de Objective-C (o mezcla) como .h/.mm (en lugar del .m habitual). No es necesario cambiar la configuración por defecto de ningún proyecto para que la compilación sea exitosa.

Un ejemplo habitual que a mí me costó solucionar: ¿Cómo pasar strings de C (char *) a strings de Objective-C (NSString)?

    float fPrueba = 3.456;
    char * strPrueba = new char[16];
    sprintf(strPrueba, "%.6f",  fPrueba);
 
    NSString * objCString =
          [NSString stringWithUTF8String:strPrueba];

Tres líneas en C++ y la siguiente pasa a ser en otro lenguaje pero utilizando la variable que ya hemos definido. ¡Y funciona! Espectacular…

Escrito por Iván Alonso el Jueves 2 de Octubre de 2008

Trasteando en mi primer día con el entorno Xcode (extraño, muy extraño), he aprendido a hacer el típico Hola Mundo para el iPhone (o al menos para su emulador).

Es necesario descargar el entorno de desarrollo Xcode con el iPhone SDK (disponibles aquí), juntos en una única descarga de 1.39GB. Hay que darse de alta como desarrollador en la página de Apple, aunque vale cualquier cuenta que ya utilicéis, como por ejemplo la de iTunes y el AppStore.

Una vez instalado abrimos /Developer/Applications/Xcode. Ignoramos la típica ventana de primera ejecución y tendremos que abrir un nuevo proyecto de tipo iPhone OS, Application, Window-Based Application. Llamaremos a nuestro proyecto HelloWorld (originalidad 100%).

(más…)