Filtración de memoria cuando se analiza la cadena JSON usando SBJSON
-
29-10-2019 - |
Pregunta
Estoy usando el siguiente código para analizar JSON y obtener una fuga de memoria (100%) en la línea número 2. No sé cuál es el problema, ¿alguien puede ayudarme?
NSString *response = [request responseString];
NSMutableDictionary *responseJSON = [response JSONValue]; (100% leak)
NSString *tockenString = [responseJSON objectForKey:@"Token"];
NSString *userIDString = [responseJSON objectForKey:@"ID"];
Solución
Encontré la respuesta. Vaya a SBJSONPARSER.M FUNCIÓN SCANTRESTOFSTRING y cambie la línea
de
*o = [[NSMutableString alloc] initWithBytes:(char*)c length:len encoding:NSUTF8StringEncoding];
a
*o = [[[NSMutableString alloc] initWithBytes:(char*)c length:len encoding:NSUTF8StringEncoding] autorelease];
SBJSONPARSER tiene un similar en ScanRestofString/nsmutableString. Informé el error también. Gracias a todos.
Otros consejos
Elimine esas 2 autoreleases. Eligen exagerado los objetos.
He tenido un problema similar, pero resultó que la fuga fue en realidad más alta en la cadena de métodos, pero los instrumentos apuntaban (erróneamente) a esta línea. Mire los métodos que almacenan los resultados recuperados de este código.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow