我喜欢使用Xcode调试器。您可以查看变量的值,甚至可以更改它。
但我可以以某种方式显示图像变量引用的图像吗?我知道我可以看到它的原始字节,但显示一个包含其内容的窗口会更加人性化。
Xcode可能不支持此功能。也许有一个外部工具可以帮助显示图像?
答案 0 :(得分:218)
使用快速查看检查Xcode调试器中的图像。
在调试器中选择NSImage
或UIImage
,然后点击快速查看“眼睛”图标。
与OS X的其他区域一样,您也可以使用空格键进行快速查看!
调试器中的快速查看也可以为您自己的类实现:
Enabling Quick Look for Custom Types
Xcode调试器中的变量Quick Look功能允许您通过图形渲染快速直观地评估对象变量的状态,在弹出窗口中显示在调试器变量视图中或源代码中的适当位置
本章介绍如何为自定义类类型实现快速查看方法,以便也可以在“快速查看”弹出窗口中以可视方式呈现这些类型的对象变量。
答案 1 :(得分:16)
修改强>
从Xcode 5开始,调试器可以显示UIImage / CGImageRef变量的可视化表示!
Xcode本身无法做到。我不知道外部工具。
我在调试时测试图像的目的是将原始数据转换为图像文件格式,如.png,然后将其保存到某处,然后我用任何图像查看工具打开图像。
我有一段代码用于此目的,看起来基本上就是这样:
NSData *imageData = UIImagePNGRepresentation(self.myUIImage);
[imageData writeToURL:desktopURL atomically:YES];
我只是复制粘贴此代码,我希望在运行中看到图像的内容。
由于UIImage
转换为NSData
答案 2 :(得分:13)
编辑Xcode 5:
现在,当您将鼠标悬停在图像变量名称上时,右侧会出现一个“眼睛”图标。只需单击它即可查看当前图像!如果你没有UIImage变量(例如它是另一个对象的属性,你仍然可以使用较旧的答案:
旧答案: 老问题,但我正在寻找答案。从Avraham的回答开始,我尝试了一些实验来显示来自lldb的iOS图像,而无需重新编译或将其添加到视图中。我终于想到了:
po [UIImagePNGRepresentation(watchImage) writeToFile:@"/Users/<userName>/Desktop/watchImage.png" atomically:NO];
我将此字符串保存在文本编辑器中,并在需要时将其粘贴。这会将我感兴趣的当前图像(在本例中为“watchImage”)存储到桌面上的PNG文件中。然后,我可以使用预览打开此文件。
答案 3 :(得分:11)
如果您想使用lldb控制台,请使用chisel命令“visualize”
提示:
安装后,您可以在使用操作设置UIImage后设置条件断点: “visualize myUIImageToShowWithQuickLook”
这将在调试器停止时自动显示图像。
答案 4 :(得分:3)
呼应@pkamb所说的-您可以使用变量视图快速查看图像。但是,如果您看不到图片怎么办?
例如,我在(contentViewController.view.subviews[0].subviews[1] as? UIImageView).image
有一张图片
但是如果我尝试在变量视图中展开contentViewController
,则不会显示我的子视图
您可以做的就是右键单击,添加一个表达式,然后您就可以看到它!
答案 5 :(得分:1)
答案 6 :(得分:-5)
你可以在图像的行中放置一个断点,然后在调试器中写下:
po your_UIImage_object
po
代表print object
,这是一个GDB命令,它会显示关于传递的对象的几个有用的信息,在你的情况下是图像。