Soy consciente de que esta es una publicación muy antigua, pero he encontrado una solución que solo ha estado disponible más recientemente Y permite casi todas las funciones de Objective-C 2.0 en la plataforma Windows.
Con el advenimiento de gcc 4.6, se agregó compatibilidad con las características del lenguaje Objective-C 2.0 (bloques, sintaxis de puntos, propiedades sintetizadas, etc.) al compilador de Objective-C (consulte las notas de la versión de para más detalles). Su tiempo de ejecución también se ha actualizado para que funcione de manera casi idéntica al tiempo de ejecución Objective-C 2.0 de Apple. En resumen, esto significa que (casi) cualquier programa que compile legítimamente con Clang en una Mac también compilará con gcc 4.6 sin modificación.
Como nota al margen, una característica que no está disponible son los literales de diccionario / matriz / etc., ya que todos están codificados en Clang para usar las clases NSDictionary, NSArray, NSNumber, etc. de Apple.
Sin embargo, si está feliz de vivir sin los extensos frameworks de Apple, puede hacerlo. Como se señaló en otras respuestas, GNUStep y Cocotron proporcionan versiones modificadas de las bibliotecas de clases de Apple, o puede escribir la suya (mi opción preferida).
MinGW es una forma de obtener GCC 4.6 en la plataforma Windows, y se puede descargar desde el sitio web de The MinGW . Asegúrese de que cuando lo instale incluya la instalación de C, C ++, Objective-C y Objective-C ++. Si bien es opcional, también sugeriría instalar el entorno MSYS.
Una vez instalado, la fuente Objective-C 2.0 se puede compilar con:
gcc MyFile.m -lobjc -std=c99 -fobjc-exceptions -fconstant-string-class=clsname (etc, additional flags, see documentation)
MinGW también incluye soporte para compilar aplicaciones nativas de Windows GUI con el -mwindows
indicador. Por ejemplo:
g++ -mwindows MyFile.cpp
Todavía no lo he intentado, pero imagino que si ajusta sus clases de Objective-C en Objective-C ++ en la capa más alta posible, debería poder entrelazar con éxito la GUI nativa de Windows C ++ y Objective-C en una sola aplicación de Windows.