Soy relativamente nuevo en el desarrollo de iPhone, así que esto puede ser mi culpa, pero va en contra de lo que he visto. :)UIAlertView -show que causa una pérdida de memoria
Creo que estoy creando un UIAlertView que vive solo en este vacío de la declaración 'if'.
NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
if(!data)
{
// Add an alert
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Error"
message:@"Unable to contact server"
delegate:nil
cancelButtonTitle:@"Ok"
otherButtonTitles:nil];
NSLog(@"retain count before show: %i", alert.retainCount);
[alert show];
NSLog(@"retain count before release: %i", alert.retainCount);
[alert release];
NSLog(@"retain count after release: %i", alert.retainCount);
return nil;
}
Sin embargo, los registros de la consola me desconciertan.
retain count before show: 1
retain count before release: 6
retain count after release: 5
He intentado también añadiendo:
alert = nil;
después del lanzamiento. Eso hace que el retener cuente 0, pero sigo mostrando una fuga. Y si ayuda, el Marco Responsable de la fuga es UIKeyboardInputManagerClassForInputMode. También estoy usando OS 4 Beta 3.
Entonces, ¿alguien tiene alguna idea de cómo un conteo de retención de UIAlertView local se incrementaría en 5 al llamar -show?
Gracias por su ayuda!
Estoy viendo lo mismo - con la versión de lanzamiento de iOS 4.1. El lanzamiento no parece importar, y probé Autorelease en su lugar - lo mismo. Esto debe ser un error en el sistema operativo, ¿verdad? – Axeva
Veo lo mismo hoy en iOS 4.1, y gracias por esta pregunta. – AechoLiu
, pero ¿cómo es posible resolver este problema? estoy en la misma situación. después de la asignación, la cuenta reincidente es 1; después de mostrar la alertaVer el recuento de retenciones es 6 después de liberarlo, se mantiene el conteo de 5 -> y se produce una pérdida de memoria –