前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >iOS开发——Debug CUICatalog: Invalid asset name supplied: (null)

iOS开发——Debug CUICatalog: Invalid asset name supplied: (null)

作者头像
Originalee
发布2018-08-30 10:43:30
2.8K0
发布2018-08-30 10:43:30
举报
文章被收录于专栏:编程之旅编程之旅

今天看到了一个Xcode log出了一个错误 CUICatalog:Invalid asset name supplied: (null), Google了一下在StackOverflow上各位大神说应该是[UIImage imageNamed:]调用的时候, name为nil. 虽然在运行的时候界面一切正常, 但是看到这个log还是想干掉它,或许每个程序猿都是一个重度强迫症患者。

需要解决的问题是查找所有[UIImage imageNamed:]调用的时候, 找到name是nil的地方, 但是整个项目一搜 imageNamed 显示 267 results in 117 files, 人工查找就算了吧.

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

于是机智的我想到了用Symbolic Breakpoint.

  • 在Xcode的Breakpoint Navigator点击加号, 选择Add Symbolic Breakpoint.
  • 右键选择Breakpoint选择 Edit Breakpoint , 在Symbol填入[UIImage imageNamed:] , 在Condition填入 [(NSString *)$arg3 length] == 0或者$arg3 == nil. 可以自己尝试po $arg1, po $arg2试试看.
  • 运行程序, 直到程序进入断点. 打开Debug Navigator观察调用栈, 最顶部的一定是[UIImage imageNamed:], 点击调用栈下一条, 能够看到有调用到imageNamed的代码, 就是namenil的地方.
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016.10.13 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档