關于AFNetworking使用發(fā)現(xiàn)內存泄漏以及解決
眾所周知,使用一些第三方的時候,程序猿都會對第三方進行一層封裝,使第三方與我們的代碼隔離,當有修改的時候我們只需要在自己封裝的文件上做修改,這樣減少了第三方代碼的入侵和方便修改。
最新的項目也是一如既往的對AFNetworking進行了封裝,因為之前的都是小項目,并且也是菜鳥階段,當然現(xiàn)在依然也是菜鳥,所以沒有關注過內存問題,這個項目因為是購買的源碼,所以存在很多問題,經常會內存飆升,所以用上了沒用過的instruments,檢查了下內存泄漏,不看不知道,發(fā)現(xiàn)各種泄漏
使用instruments檢查的
查看了一下內存泄漏的地方,發(fā)現(xiàn)自己封裝的請求有內存泄漏
這里寫圖片描述
繼續(xù)往下查看發(fā)現(xiàn)是AFNetworking內部泄漏
這里寫圖片描述
百度了好久,也很難找到這類的問題,于是我去github看了下AFNetworking,并且再次把代碼下載下來看了下,如下圖
1.請求
這里寫圖片描述
2.請求封裝這里寫圖片描述
3.對請求隊列管理者AFHTTPSessionManager繼承這里寫圖片描述
4.創(chuàng)建單例方法這里寫圖片描述
于是我也學者使用單利來創(chuàng)建AFHTTPSessionManager
這里寫圖片描述
這里寫圖片描述
然后運行instruments,檢查下內存,就會發(fā)現(xiàn)AFNetworing之前泄漏的地方不再泄露了
這里寫圖片描述

公司的項目.png
????公司的項目,求支持,如果發(fā)現(xiàn)什么問題,可以留言反應,感激不盡????