incompatibilidad GNUStep NSAutoreleasePool
-
18-09-2019 - |
Pregunta
Según otro post desbordamiento de pila el mensaje drain
es una manzana llamada de sólo:
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
NSLog (@"Hello");
[pool drain];
return 0;
¿Es seguro para reemplazar drain
con release
? Estoy tratando de trasladar una aplicación de Objective-C para funcionar en Linux (Ubuntu en el momento). Debería renunciar incluso antes de haber empezado? (Ya estoy teniendo problemas tratando de conseguir trabajo NSURLConnection
)
Solución
A partir de la documentación de drain
de Apple:
[...] este método se comporta igual que la liberación. [...]
Así que drenar una piscina autorelease significa desasignar inevitablemente. En mi opinión, Apple debería despreciar drain
ya que sólo crea confusión.
Pero:
Consideraciones especiales:
En un entorno de recolección de basura,release
es un no-op, por lo menos que no desea para dar el colector una pista que esdrain
importante utilizar en cualquier código que pueden compilarse para una ambiente basura-recogida.