Утечка памяти при разборе строки JSON с использованием SBJSON - PullRequest
0 голосов
/ 16 января 2012

Я использую следующий код для анализа JSON и получения утечки памяти (100%) в строке номер 2. Я не знаю, в чем проблема, кто-то может мне помочь?

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

    NSString *tockenString = [responseJSON objectForKey:@"Token"];
    NSString *userIDString = [responseJSON objectForKey:@"ID"];

Ответы [ 3 ]

1 голос
/ 17 января 2012

Я нашел ответ.Перейдите к SBJsonParser.m функции scanRestOfString и измените строку

с

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

на

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

SBJsonParser имеет аналогично scanRestOfString / NSMutableString.Я также сообщил об ошибке.Спасибо вам всем.

0 голосов
/ 17 января 2012

У меня была похожая проблема, но оказалось, что утечка была на самом деле выше в цепочке методов, но Instruments (по ошибке) указывал на эту строку. Посмотрите на методы, которые хранят результаты, полученные из этого кода.

0 голосов
/ 16 января 2012

Удалите эти 2 авто-релиза. Они перевыпускают объекты.

...