2009-02-12 7 views
1

Je souhaite obtenir le contenu d'un objet NSData à partir d'une URL. Quelle est la manière la plus efficace de le faire en termes d'utilisation de la mémoire dataWithContentsOfURL (ou initWithContentsOfURL) ou en utilisant NSURLConnection?NSData - Quel est le meilleur en termes d'utilisation de la mémoire: initWithContentsOfURL ou NSURLConnection

Dois-je utiliser

NSData *data = [[NSData alloc] initWithContentsOfURL:myURL] 

ou

NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error]; 

Répondre

2

Je ne connais pas les codes internes d'Apple, mais j'imagine que les initWithContents d'URL de NSData utilisent NSURLConnection en interne. Les différences d'utilisation de la mémoire seront négligeables. Utiliser l'API asynchrone de NSURLConnection vous permettrait d'avoir plus de mémoire en manipulant les données au fur et à mesure mais (sans savoir ce que vous faites réellement) je pense que c'est une optimisation assez agressive que vous devriez laisser jusqu'à ce que vous ayez code de travail.

0

sûr qu'ils sont tout à fait équivalent.

+0

dites-vous à la fois "initWithContentsOfURL" "sendSynchronousRequest" utiliser une connexion synchrone? –

+1

'initWithContentsOfURL:' ne déclenche pas de méthodes déléguées ou ne prend pas de bloc de rappel, il doit donc être synchrone. –

Questions connexes