Debug CUICatalog: Invalid asset name supplied

今天看到了一个Xcode log出了一个错误CUICatalog:Invalid asset name supplied: , Google了一下可能是+[UIImage imageNamed:]调用的时候, name为nil. 解决的方法就是查找所有+[UIImage imageNamed:]调用的时候, 找到name是nil的地方, 但是整个项目一搜 “imageNamed” 显示。。。 , 人工查找就算了吧.

然后想到的是用Method Swizzle来修改+[UIImage imageNamed:]的实现, 在name为nil的时候用断言, 查看调用栈. 但是想想写了debug之后还得删掉, 比较麻烦.

于是机智的我想到了用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观察调用栈, 最顶部的一定是+[UIImage imageNamed:], 点击调用栈下一条, 能够看到有调用到imageNamed的代码, 就是name为nil的地方.

4.如果找到的地方显示的是地址,而不是代码,这时候不妨查看下一个断点,不错应该就是下个断点哪里.



作者:尘清
链接:https://www.jianshu.com/p/2e0470336e71
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值