Domanda

un altro post Stack Overflow il messaggio è un drain apple ha chiamata solo:

NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
NSLog (@"Hello");
[pool drain];
return 0;

E 'sicuro di sostituire drain con release? Sto cercando di porting di un'applicazione Objective-C per l'esecuzione su Linux (Ubuntu al momento). Dovrei rinunciare anche prima che ho iniziato? (Sto già avendo problemi cercando di ottenere lavoro NSURLConnection)

È stato utile?

Soluzione

Dalla documentazione di Apple drain:

  

[...] questo metodo si comporta come liberazione. [...]

Quindi drenaggio di una piscina autorelease significa deallocando inevitabilmente. A mio parere, Apple dovrebbe deprecare drain in quanto crea solo confusione.

Ma:

  

Considerazioni particolari:
  In un ambiente di garbage collection, release   è un no-op, quindi a meno che non si vuole   per dare il collettore un suggerimento è   importante utilizzare drain in qualsiasi codice   che può essere compilato per un   garbage collection ambiente.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top