Domanda

Sto usando il seguente codice per analizzare JSON e ottenere perdite di memoria (100%) sul numero di riga 2. Non so qual è il problema, qualcuno può aiutarmi?

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

    NSString *tockenString = [responseJSON objectForKey:@"Token"];
    NSString *userIDString = [responseJSON objectForKey:@"ID"];
È stato utile?

Soluzione

Ho trovato la risposta. Vai a SBJSONPARSER.M Function ScanRestofString e cambia la linea

da

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

a

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

SBJSONPARSER ha un like in scanresofstring/nsmutablestring. Ho segnalato anche il bug. Grazie a tutti.

Altri suggerimenti

Rimuovi quelle 2 autorelease. Hanno sovraccarico gli oggetti.

Ho avuto un problema simile, ma si è scoperto che la perdita era in realtà più alta nella catena di metodi, ma gli strumenti erano (erroneamente) indicando questa linea. Guarda i metodi che memorizzano i risultati recuperati da questo codice.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top