Когда вы говорите вызову выполнить invoke в фоновом режиме, создается новый поток с invoke, являющимся первым вызванным методом. Invoke не создает пул авто-релиза, поэтому все, что было автоматически выпущено во время этого метода, будет утечка.
Чтобы исправить это, используйте метод-обертку для выполнения вызова.
- (void)performInvocation:(NSInvocation *)anInvocation {
NSAutoreleasePool *pool = [NSAutoreleasePool new];
[anInvocation invoke];
[pool release];
}
//where you were performing the invoke before:
[self performSelectorInBackground:@selector(performInvocation:) withObject:anInvocation];