¿Que pasa con las apps de GNUstep?

Bien, después de la liberación de las nuevas versiones estables de GNUstep, algunos de ustedes habrán comprobado que algunas aplicaciones (un buen número de ellas) no compilan. ¿Que sucede? Bien, antes que nada, como explique en una nota anterior, GNUstep sufrió una reorganización interna. Reorganización que no afecta en nada a los tutoriales publicados aquí. Pero que afecta a algunas apps que se desarrollaron de una forma diferente a las que se muestran en los tutoriales. En dichos tutoriales, siempre se incluyen (o lo hace ProjectCenter por nosotros) las cabeceras de GNUstep de la siguiente forma

#include <Foundation/Foundation.h>

#include <AppKit/AppKit.h>

Esto incluye todas las cabeceras de definición para todas las clases de GNUstep. Sin embargo, por motivos de rendimiento, muchos desarrolladores incluyen solamente aquellas clases que utilizaran. Haciendo algo como:

#include <Foundation/NSNumber.h>

#include <Foundation/NSString.h>

#include <Foundation/NSDictionary.h>

El problema con esto, es que ahora las cabeceras NSNumber.h y NSDictionary.h (así como muchas otras) ya no existen. Porque el lugar donde se define dichas clases, se ha movido a otras cabeceras. Por ejemplo, NSNumber se define ahora en la cabecera NSValue.h. Claro, la solución más fácil para este problema es agregar un #include <Foundation/Foudation.h> (o un #include <AppKit/AppKit.h> según sea el caso) para incluir todas las cabeceras, en lugar de incluir clase por clase. Así, con esto ya saben como reparar todas esas aplicaciones, si no quieren esperar a que se publique una nueva versión que se adapte a este nuevo GNUstep. Solamente queda recordar que ahora se puede puede utilizar completamente (y se recomienda) #import en lugar de #include. Por cierto, las apps de GNUstep (SystemPReferences, ProjectCenter y Gorm) ya han sido adaptadas a este cambio. Me refiero a las apps en los repositorios SVN claro.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s