2010-06-16 4 views
1

Je reçois la fuite à cette ligne dans le code ci-dessous "NSData * returnData = [NSURLConnection ..........."fuites lors de l'utilisation NSData, NSURL, NSMutableURLRequest, NSURLConnection et sendSynchronousRequest

NSURL * finalURL = [URLWithString NSURL: curl]; NSMutableURLRequest * theRequest = [NSMutableURLRequest requestWithURL: finalURL cachePolicy: NSURLRequestReloadIgnoringCacheData timeoutInterval: 10]; [theRequest setHTTPMethod: @ "GET"]; NSData * returnData = [NSURLConnection sendSynchronousRequest: theRequest returnResponse: erreur nulle: nil]; BOOL enabled = [self getAutoGenerateObject: returnData]; retour activé;

s'il vous plaît aidez-moi hors de ce problème. Merci, Madan Mohan

Répondre

0

Vous aurez besoin de libérer le retour de données. C'est pourquoi dans les exemples d'Apple dans 'Guide de programmation de chargement d'URL/Utilisation de NSURLConnection', le retour de données est assigné à un iVar et libéré dans dealloc ou connectionDidFinishLoading dans le cas d'une communication asynchrone.

En fonction de l'opération que vous effectuez dans votre méthode getAutoGeneratedObject, mais en théorie, elle peut en prendre la propriété.

Vous pouvez également marquer returnData comme auto-libéré, mais ce n'est pas toujours recommandé, surtout si les données de réponse sont volumineuses.

NSURL *finalURL = [NSURL URLWithString:curl]; 
NSMutableURLRequest *theRequest = [NSMutableURLRequest requestWithURL:finalURL 
                  cachePolicy:NSURLRequestReloadIgnoringCacheData 
                 timeoutInterval:10]; 
[theRequest setHTTPMethod:@"GET"]; 

NSData *returnData = [NSURLConnection sendSynchronousRequest:theRequest returningResponse:nil error:nil]; 

BOOL enabled = [self getAutoGenerateObject:returnData]; 

[returnData release]; 

return enabled; 
+0

Êtes-vous sûr de cela? Ceci est en contravention directe avec les règles de gestion de la mémoire de Cocoa, et l'analyseur statique devrait vous en avertir. Si ce piratage est vraiment nécessaire, il devrait être signalé à Apple comme un bug. –

Questions connexes