Question

J'utilise le code suivant pour analyser JSON et obtenir une fuite de mémoire (100%) sur la ligne numéro 2. Je ne sais pas quel est le problème, quelqu'un peut-il m'aider?

    NSString *response = [request responseString];
    NSMutableDictionary *responseJSON = [response JSONValue]; (100% leak)

    NSString *tockenString = [responseJSON objectForKey:@"Token"];
    NSString *userIDString = [responseJSON objectForKey:@"ID"];
Était-ce utile?

La solution

J'ai trouvé la réponse. Accédez à SBJSONPARSER.M Fonction ScanRestOfString et modifiez la ligne

de

        *o = [[NSMutableString alloc] initWithBytes:(char*)c length:len encoding:NSUTF8StringEncoding];

à

        *o = [[[NSMutableString alloc] initWithBytes:(char*)c length:len encoding:NSUTF8StringEncoding] autorelease];

SBJSonParser a un comme dans ScanRestOfString / NSMutableString. J'ai également signalé le bug. Merci à tous.

Autres conseils

Retirez ces 2 autoréases. Ils réalisent de manière excessive les objets.

J'ai eu un problème similaire, mais il s'est avéré que la fuite était en fait plus élevée dans la chaîne des méthodes, mais les instruments pointaient (à tort) de cette ligne. Regardez les méthodes qui stockent les résultats récupérés à partir de ce code.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top