J'ai utilisé le code ci-dessous pour lancer un téléchargement Il a signalé une fuite de mémoire, j'ai vérifié le code ci-dessus mais ne peut trouver aucun endroit est faux, p> Votre commentaire Bienvenue p> P>
3 Réponses :
Vous avez deux pointeurs, un à downloadManager1 code> et un à un objet
nsurl code>. Selon le lieu où cela est invoqué dans votre code, je soupçonne qu'il existe un
permanent code> référence code> à l'une ou l'autre. Essayez de convertir le
nsurl code> à partir d'un pointeur à un objet réel et celui-ci copiera à la place de la valeur, et vérifiez-vous à vous assurer que le téléchargement code> est publié lorsque le travail est terminé. p>
Merci, mais même leur code d'échantillon officiel a également causé beaucoup de mémoire de mémoire Github.com/afnetworking/aftworking / Problèmes / 4372 (j'ai soumis)
Je pense que la fuite se produit lorsque vous créez le gestionnaire. Nsurlsession tient une référence conservée au délégué. Cela pourrait vous aider si vous initialisez et stockez le manager une seule fois. Je ne sais pas combien de fois votre code pour DataTask est appelé. P>
Checkout https://github.com/afnetworking/afnetworking/issues/3787< p>
invalidateSessionCancelingTasks: This is known and documented behavior. When you're finished with a session, call invalidateSessionCancelingTasks:. This is not an issue for most apps, which keep a single session for the lifetime of the application. https://github.com/AFNetworking/AFNetworking/issues/1528#issuecomment-26887778