AVAudioRecorder Fuga de memoria

Espero que alguien pueda respaldarme en esto ...

He estado trabajando en una aplicación que permite al usuario final grabar un pequeño archivo de audio para su posterior reproducción y estoy en el proceso de prueba de pérdidas de memoria. Continúo con una pérdida de memoria muy constante cuando el método de "detención" del AVAudioRecorder intenta cerrar el archivo de audio en el que se está grabando. Esto realmente parece ser una fuga en el marco en sí, pero si estoy siendo un tonto me lo puedes decir.

Para ilustrar, he desarrollado una aplicación de prueba simplificada que no hace nada más que iniciar / detener una grabación con solo presionar un botón. En aras de la simplicidad, todo sucede en la aplicación. delegue de la siguiente manera:

@synthesize audioRecorder, button;
@synthesize window;

- (BOOL) application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    
 // create compplete path to database
 NSString *tempPath = NSTemporaryDirectory();
 NSString *audioFilePath = [tempPath stringByAppendingString:@"/customStatement.caf"];

 // define audio file url
 NSURL *audioFileURL = [[NSURL alloc] initFileURLWithPath:audioFilePath];

 // define audio recorder settings
 NSDictionary *settings = [[NSDictionary alloc] initWithObjectsAndKeys:
      [NSNumber numberWithInt:kAudioFormatAppleIMA4], AVFormatIDKey,
      [NSNumber numberWithInt:1], AVNumberOfChannelsKey,
      [NSNumber numberWithInt:AVAudioQualityLow], AVSampleRateConverterAudioQualityKey,
      [NSNumber numberWithFloat:44100], AVSampleRateKey,
      [NSNumber numberWithInt:8], AVLinearPCMBitDepthKey,
      nil
 ];

 // define audio recorder
 audioRecorder = [[AVAudioRecorder alloc] initWithURL:audioFileURL settings:settings error:nil];
 [audioRecorder setDelegate:self];
 [audioRecorder setMeteringEnabled:YES];
 [audioRecorder prepareToRecord];

 // define record button
 button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
 [button addTarget:self action:@selector(handleTouch_recordButton) forControlEvents:UIControlEventTouchUpInside];
 [button setFrame:CGRectMake(110.0, 217.5, 100.0, 45.0)];
 [button setTitle:@"Record" forState:UIControlStateNormal];
 [button setTitle:@"Stop" forState:UIControlStateSelected];

 // configure the main view controller
 UIViewController *viewController = [[UIViewController alloc] init];
 [viewController.view addSubview:button];

 // add controllers to window
 [window addSubview:viewController.view];
 [window makeKeyAndVisible];

 // release
 [audioFileURL release];
 [settings release];
 [viewController release];

 return YES;
}

- (void) handleTouch_recordButton {
 if ( ![button isSelected] ) {
      [button setSelected:YES];
      [audioRecorder record];

 } else {
      [button setSelected:NO];
      [audioRecorder stop];
 }
}

- (void) dealloc {
 [audioRecorder release];
 [button release];

 [window release];

 [super dealloc];
}

El seguimiento de la pila de los instrumentos que muestra con bastante claridad que el método "closeFile" en el código de AVFoundation tiene fugas ... algo. Puede ver una captura de pantalla de la sesión de Instrumentos aquí:Foros de desarrolladores: AVAudioRecorder Memory Leak

Cualquier idea sería muy apreciada!

Respuestas a la pregunta(3)

Su respuesta a la pregunta