追踪 CUICatalog: Invalid asset name supplied: ''
错误的操作指南
在开发 iOS 应用时,有时会遇到 CUICatalog: Invalid asset name supplied: ''
错误,这是因为某些视图或控制器尝试加载一个不存在的资源。为了解决这个问题,可以按照以下步骤操作,逐步缩小问题范围并定位到无效的资源引用。
1. 设置符号断点
在 Xcode 中设置一个符号断点,帮助我们在问题发生时暂停代码执行,检查相关变量和调用堆栈。
-
打开 Xcode 并导航到 断点导航器 (快捷键
Cmd+8
)。 -
点击左下角的
+
按钮,选择 符号断点。 -
在弹出的对话框中,输入可能与资源加载相关的符号,比如
+[UIImage imageNamed:inBundle:withConfiguration:]
。 -
为了在每次调用该方法时查看信息,可以添加一个调试命令:
po $x2
$x2
是指调用堆栈中第二个参数,通常表示传递的资源名称。 -
设置 auto continue(自动继续执行),这样程序不会每次都停止,直到你找到问题点。
2. 检查控制台日志
当错误发生时,查看控制台中的日志输出。Xcode 的控制台可能提供额外的信息,比如哪个视图或哪个控制器在尝试加载资源时出错。
- 当断点被命中时,查看打印出来的
$x2
值,它可能会显示空的资源名称或某个无效的资源。 - 通过这个信息,你可以推断出哪个视图或控制器触发了无效资源加载。
3. 逐步缩小范围
如果以上步骤中你没有立即找到问题的源头,可以尝试以下方法逐步缩小范围:
- 在怀疑有问题的页面或视图控制器中,关闭 auto continue 选项。这样一旦命中断点,代码会暂停,你可以手动继续调试。
- 尝试逐个页面或组件启用断点,并通过逐步排除法确定哪个页面或哪个组件引用了无效的资源。
总结
通过设置符号断点、检查控制台日志、逐步缩小调试范围,你可以更精确地定位到资源加载出错的地方,找到导致 CUICatalog: Invalid asset name supplied: ''
错误的源头。