Pregunta

Estoy frente a un problema extraño poco con la implementación de UIAccelerometer. Tengo un UITableViewController donde no quiero utilizar UIAccelerometer, pero después de pulsar en una de las filas Quiero activado una dentro de un UIViewController, todo está bien cuando se utiliza el simulador, pero cuando se utiliza el dispositivo iPhone 3G para probarlo, tengo EXC_BAD_ACCESS pulsando el botón de retorno.

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {


     ShakeControl *percView = [[ShakeControl alloc] init];
     // ...
     // Pass the selected object to the new view controller.
     [self.navigationController pushViewController:percView animated:YES];
     [percView release];


}

Funciona bien cuando me desactivar [liberación percView] ;, pero no suena como solución para. Cualquier idea sería apreciada.

aplicación Shake control:

- (void)viewDidLoad {
    [super viewDidLoad];
    [[UIAccelerometer sharedAccelerometer] setUpdateInterval:1.0 / kUpdateFrequency];
    [[UIAccelerometer sharedAccelerometer] setDelegate:self];

}

- (void)viewDidUnload {
    [super viewDidUnload];

    [[UIAccelerometer sharedAccelerometer] setDelegate:nil];
}

Thx

¿Fue útil?

Solución

El método viewDidUnload se llamará sólo en el caso específico, tales como la alerta de memoria. Usted tiene que quitar el delegado en dealloc también.

Otros consejos

Trate de soltarlo después de descartarlo, no estoy seguro de si pushViewController conserva.

Se podría establecer las variables de entorno y NSZombiesEnabled NSAutoreleaseFreedObjectCheckEnabled con un valor de 1. Esto evitará que los objetos de la realidad de ser desasignado, a continuación, usted debe obtener los registros de consola que indica que el exceso de liberación está viniendo.

Se puede usar herramientas se ejecutan con el rendimiento -.> Las asignaciones una vez que sepa qué objeto está siendo liberada sobre-y ver todos los lugares donde un retienen / liberación fue llamado para detectar el desequilibrio

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top