2019.5.18
1.描述:當(dāng)從首頁進(jìn)入一個(gè)頁面后,稍作停留后返回上個(gè)頁面,重復(fù)幾次發(fā)現(xiàn)頁面卡死了,即使返回桌面再重新進(jìn)入app還處于卡死狀態(tài)。
其間查找了很多資料,也沒有解決。
但是發(fā)現(xiàn)了一個(gè)現(xiàn)象,卡死時(shí)CPU高達(dá)100%,

2019-05-18 17.42.13.png
然后調(diào)整方向,查找如何解決CPU過高的問題,在某篇文章中找到了查找占用CPU過高代碼的方法:Instruments->Time Profile
然后使用工具監(jiān)控后發(fā)現(xiàn)是數(shù)組的操作導(dǎo)致的,

2019-05-18 17.55.56.png
會(huì)想起最近寫的關(guān)于數(shù)組操作的代碼就是,在navigation中的隔層pop(如從第三個(gè)vc直接返回第一個(gè)vc)時(shí),我的思路是在頁面的viewDidAppear方法中將第一個(gè)vc和最后一個(gè)vc中間的其他vc移除,然后將新的vc數(shù)組賦值給navigationController的viewControllers。
但只是猜想,接下來采用排除法,將這一部分的代碼注釋掉。經(jīng)過反復(fù)的試驗(yàn),再?zèng)]出現(xiàn)程序卡死的問題。bingo!
關(guān)于隔層pop,采用了這篇文章的方法。