0
votes

Fuite de la mémoire Afnetworking

J'ai utilisé le code ci-dessous pour lancer un téléchargement xxx

Entrez la description de l'image ici

Il a signalé une fuite de mémoire, j'ai vérifié le code ci-dessus mais ne peut trouver aucun endroit est faux,

Votre commentaire Bienvenue


0 commentaires

3 Réponses :


0
votes

Vous avez deux pointeurs, un à downloadManager1 et un à un objet nsurl . Selon le lieu où cela est invoqué dans votre code, je soupçonne qu'il existe un permanent référence à l'une ou l'autre. Essayez de convertir le nsurl à 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 est publié lorsque le travail est terminé.


1 commentaires

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)



0
votes

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é.

Checkout https://github.com/afnetworking/afnetworking/issues/3787<


0 commentaires

0
votes
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

0 commentaires