有時候,在程序運行的時候,控制臺會打印這句話,但是并不會影響程序的運行
CUICatalog: Invalid asset name supplied
完美起見,還是解決掉比較好
導(dǎo)致打印這句話的原因可能是+[UIImage imageNamed:]調(diào)用的時候, name為nil. 解決的方法就是查找所有+[UIImage imageNamed:]調(diào)用的時候, 找到name是nil的地方。龐大的項目中去找哪里調(diào)用了這個類方法,即使全局搜也夠眼暈的??
用Symbolic Breakpoint解決
解決方案
1.在Xcode的Breakpoint Navigator點擊加號, 選擇Add Symbolic Breakpoint。
2.右鍵選擇Breakpoint選擇Edit Breakpoint, 在Symbol填入+[UIImage imageNamed:], 在Condition填入[(NSString *)$arg3 length] == 0或者$arg3 == nil. 可以自己嘗試po $arg1,po $arg2試試看。
3.運行程序, 直到程序進入斷點. 打開Debug Navigator觀察調(diào)用棧, 最頂部的一定是+[UIImage imageNamed:], 點擊調(diào)用棧下一條, 能夠看到有調(diào)用到imageNamed的代碼, 就是name為nil的地方。
4.如果找到的地方顯示的是地址,而不是代碼,這時候不妨查看下一個斷點,不錯應(yīng)該就是下個斷點哪里。
具體操作如下

屏幕快照 2018-01-11 下午3.52.21.png

屏幕快照 2018-01-11 下午3.53.35.png

屏幕快照 2018-01-11 下午3.55.03.png

image.png
將傳入的nil修改為@""或者給一個默認(rèn)占位圖名稱。