Pregunta

En algún momento asigno un elemento NSMutableData como esto:

NSMutableData* data=[[NSMutableData alloc] initWithLength:0];

Más tarde, debo hacer:

NSString *dataAsStr = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding] ;
completeCommand = [NSString stringWithFormat:@"%@%@",
    incompleteMessage,
    [dataAsStr substringWithRange:NSMakeRange(startIndex, i-startIndex)]];         
[incompleteMessage release];
incompleteMessage = nil;
[dataAsStr release];

Y finalmente llamada:

[data release]; //Here I get a BAD_ACCESS error since data gets a release count of -1

Ahora bien, según los instrumentos (asignaciones con soporte zombi), la primera línea del segundo bloque NSString * dataAsString = ... llamadas [publicación de los datos]

¿Dónde ocurrió?

¿Fue útil?

Solución

El misterio está resuelto .. Es un método bastante grande, así que no me daba cuenta de que [la publicación de datos]; estaba en un bucle y su malloc no lo era. Que estaba causando el zombi.

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