iOS autorelease-pool-Blöcke

Ich war das Lesen der Dokumentation von apple über Speicher-management-wenn ich autorelease pool Blöcke und etwas gab mir zu denken.

 Any object sent an autorelease message inside the autorelease pool block is  
 released at the end of the block.

Ich bin nicht sicher, ob ich voll verstehen. Jedes Objekt innerhalb einer autorelease-pool-block veröffentlicht wird am Ende des Blocks sowieso, denn das ist es Lebensdauer. Warum würden Sie brauchen, um Anruf autorelease an das Objekt, wenn es geht, erschien jedenfalls, wenn er erreicht das Ende des Blocks?

Klarer zu werden, werde ich ein Beispiel geben, von dem, was ich denke:

   @autoreleasepool {

    MyObject *obj = [[MyObject alloc] init]; //no autorelease call here

    /* use the object*/
   //....
   //in the end it should get deallocated because it's lifespan ends, right?
   //so why do we need to call autorelease then?!
  }

PS: Bitte erzählen Sie mir nicht, weil der ARC, die wir nicht brauchen, einige Dinge zu tun, weil ARC kümmert sich um Sie. Ich bin mir voll bewusst, aber ich möchte zu verlassen, BOGEN beiseite nur für ein paar Momente, um zu verstehen, den Mechanismus der Speicher-management.

InformationsquelleAutor der Frage Teo | 2013-04-24

Schreibe einen Kommentar