2010-03-25 2 views
2

Dois-je être retenue que le responseData je rentraisconservant au retour?

// METHOD 
-(NSData *)dataFromTurbine:(NSString *)pathToURL { 

    NSURL *url = [[NSURL alloc] initWithString:pathToURL]; 
    NSURLRequest *request = [[NSURLRequest alloc] initWithURL:url]; 
    NSHTTPURLResponse *response = nil; 
    NSError *error = nil; 
    NSData *responseData = [NSURLConnection sendSynchronousRequest:request 
               returningResponse:&response 
                  error:&error]; 

    [request release]; 
    [url release]; 
    return responseData; 
} 

.

// CALLED 
NSData *newData = dataFromTurbine(kTurbineDataPath); 
[doSomething newData]; 
+2

Si vous utilisez Xcode, utilisez Construire et analyser, cela vous aidera beaucoup avec ce genre de choses. – bddckr

+0

Merci, je vais le faire. – fuzzygoat

Répondre

6

Étant donné que le nom de la méthode ne démarre pas avec init, new ou copy, dataFromTurbine doit retourner une instance autoreleased de NSData. (Qui est déjà vrai maintenant pour responseData)

La méthode appelante a alors la propriété, et devrait conserver si nécessaire.

+0

Beaucoup apprécié Rengers, je me suis mélangé, merci encore. – fuzzygoat

0

En un mot, non. L'objet NSData que vous obtenez de NSURLConnection est auto-libéré, vous ne devez donc le conserver/relâcher que si vous devez le conserver. Sinon, il sera automatiquement libéré pour vous au passage suivant de la boucle d'exécution.

Questions connexes