AutoreleasePool

public abstract @interface AutoreleasePool implements Annotation

Annotation that indicates the translator should inject an autorelease pool around the method body. Only valid on methods that don't return anything.

Useful in high-level contexts to ensure that temporary objects allocated within the method or loop are deallocated.

Example usage:

 // Temporary objects allocated during execution of this method will
 // be deallocated upon returning from this method.
 @AutoreleasePool
 public void doWork() {
   ...
 }

 public void doWork(Iterable<Runnable> workToDo) {
   // Adding @AutoreleasePool on the loop variable causes a separate
   // autorelease pool to be attached to each loop iteration, clearing
   // up temporary objects after each iteration
   for (@AutoreleasePool Runnable item : workToDo) {
     item.run();
   }
 }
 

Inherited Method Summary