2009-08-25 3 views
0

Je reçois le type de fuite de mémoire suivant dans mon application - vérification des instruments. J'ai correctement attribué & désaffecté chaque objet. Cependant, je reçois ce type de fuite de mémoire.cfnetwork fuites de mémoire dans l'iPhone

std :: _ Deque_base < __CFURLCacheNode *, std :: allocateur < __CFURLCacheNode *>> ​​:: _ M_allocate_node()

Quelle est la raison derrière générer ce genre de fuite?

Pourquoi cette fuite de mémoire s'est produite?

Images: -

alt text http://img197.imageshack.us/img197/9571/problem151.png

alt text http://img194.imageshack.us/img194/6181/problem152.png

alt text http://img194.imageshack.us/img194/8035/problem153.png

alt text http://img193.imageshack.us/img193/6092/problem154.png

+0

appelez-vous '[NSURLCache setSharedURLCache:]' ne importe où dans votre code? Vous devez - pour configurer le cache de partition pour les réponses - mais vous ne devez le faire qu'une fois dans votre application (de préférence dans le délégué de l'application après le lancement de l'application). Si vous appelez cette méthode plus d'une fois dans votre application, dans mon expérience, vous commencerez à voir exactement ce type de fuite de mémoire. – rennarda

Répondre

10

Implémentez le code suivant dans votre appDidFinishL. fonction

il n'y aura pas de fuite

- (void)applicationDidFinishLaunching:(UIApplication *)application {  

// Override point for customization after app launch  
NSURLCache *sharedCache = [[NSURLCache alloc] initWithMemoryCapacity:0 diskCapacity:0 diskPath:nil]; 
[NSURLCache setSharedURLCache:sharedCache]; 
[sharedCache release]; 

[window addSubview:[navigationController view]]; 
[window makeKeyAndVisible]; 

}

+1

Sur les problèmes liés à l'appareil c'est la bonne réponse. Merci Spark – Tornado

+0

Cela semble avoir fait disparaître les grands pour moi. – Morkrom

1

Vous l'établissement de profils sur téléphone ou sur le simulateur ?

J'ai entendu dire qu'il y avait des fuites de mémoire dans la classe NSURLConnection quand sur le simulateur.

de http://www.iphonedevforums.com/forum/general-development-questions-advice/1086-memory-leaks.html

La classe NSURLConnection lui-même a une fuite dans le procédé en sendSynchronousRequest OS 2.x C'est un problème dont Apple est pleinement conscient.

+0

Il y a toujours des fuites sur OS 3.1.2. Je suis devenu fou en essayant de comprendre ce qui se passait. Il y a aussi des plantages aléatoires dans CFNetwork. J'ai écrit un petit exemple de programme qui démontre le problème, donc j'espère qu'Apple va le réparer. En attendant, ASIHTTPRequest est un remplacement étonnant pour NSURLConnection. Zéro fuite, zéro accident jusqu'à présent. –

Questions connexes