代碼運行過程中常會遇到內存問題:Thread 1: EXC_BREAKPOINT (code=1, subcode=0x198d80a08)
這個報錯提示很籠統,各個開發人員在開發過程中遇到的問題各不相同,下面來統計集合,希望能有你的答案
(PS:有遇到不同情況的朋友可以評論或者私信我,完善這篇文章,儘可能解決這個問題)
1.沒有dealloc 對象
1.1 我遇到的場景:登陸App-->退出登陸,回到登陸界面-->再登陸,報錯 (如下圖: )
1.2 分析:通常這個錯誤提示出來,第一反應就是內存泄漏:哪個對象提前釋放了,哪個對象沒有被釋放掉,但是一個個找真的很麻煩
1.3 解決:開啓殭屍對象(Zombie Objects)來定位問題,在Xcode的菜單:Product->Scheme->Edit Scheme->RUN,
Diagnostics ->Memory Management ->(勾選)Zombie Objects。(如下圖:)
重運行,復現錯誤,此時系統定位了錯誤且在控制檯輸出了相應描述,是我自己的MineViewController這個界面 (如下圖:)
再在這個頁面找錯誤.(這裏就按照自己的代碼思維找了,沒有捷徑)
最後找到的錯誤是:沒有釋放KVO對象,KVO監聽了“MineCarsStatus”, 沒有在 dealloc 裏釋放掉:(如下圖:)
最後在dealloc 裏釋放 MineCarsStatus 即可。