1.AFNetworking中的內(nèi)存泄漏


AFNetworking中的AFURLSessionManager、AFSecurityPolicy、AFJSONResponseSerializer的內(nèi)存泄漏:我們的項(xiàng)目內(nèi)存檢測時(shí),發(fā)現(xiàn)AFNetworking中的AFURLSessionManager、AFSecurityPolicy、AFJSONResponseSerializer存在內(nèi)存泄漏。
一般iOS開發(fā)者會(huì)把AFNetworking再封裝一個(gè)網(wǎng)絡(luò)請求單例,NetworkManager, 我們的項(xiàng)目也是這樣,這樣一般是不會(huì)出現(xiàn)內(nèi)存泄漏的,后來我們發(fā)現(xiàn)內(nèi)存泄漏后就在全局搜索AFURLSessionManager。發(fā)現(xiàn)原來是以前的同事在一個(gè)下載文件的地方?jīng)]用封裝的網(wǎng)絡(luò)請求單例,而是直接寫了請求如下圖

這是因?yàn)锳FURLSessionManager中的session沒有釋放掉導(dǎo)致AFURLSessionManager沒有釋放,
其實(shí)這樣單獨(dú)使用也沒什么,因?yàn)閍fnetworking其實(shí)已經(jīng)給了一個(gè)釋放方法,只是我們不知道去用而已:
[manager.session invalidateAndCancel];
在請求結(jié)束后,用這句話釋放掉就可以了。
參考文章:https://blog.csdn.net/mlcldh/article/details/79913996