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)

¿Fue útil?

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 es   drain importante utilizar en cualquier código   que pueden compilarse para una   ambiente basura-recogida.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top