problema de memoria raro
-
25-09-2019 - |
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ó?
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