【发布时间】:2019-10-03 04:38:38
【问题描述】:
Xcode 中是否有允许您在调试时检查 NSImage 引用的功能?
类似于 webkit 检查器如何让您检查网页中的图像引用。
如果做不到这一点,在使用 NSIMages 时最简单的调试方法是什么?
【问题讨论】:
-
你到底想调试什么?即,您遇到什么问题需要帮助调试?
标签: objective-c cocoa debugging nsimage
Xcode 中是否有允许您在调试时检查 NSImage 引用的功能?
类似于 webkit 检查器如何让您检查网页中的图像引用。
如果做不到这一点,在使用 NSIMages 时最简单的调试方法是什么?
【问题讨论】:
标签: objective-c cocoa debugging nsimage
更新: 使用 Xcode 5 及更高版本查看 MagerValp 的答案。看起来您可以直接在 Xcode 中预览图像。
不,据我所知,Xcode 中没有这样的功能。如果您的应用程序创建或操作图像,并且您希望查看对 NSImage 的引用背后的数据的可视化表示,则可以将图像转储到文件系统。
只需创建一个类别,将 -(void)dump 添加到 NSImage 中,如下所示:
@interface NSImage (Dump)
- (void)dump;
@end
@implementation NSImage (Dump)
- (void)dump {
NSBitmapImageRep *imageRep = [[self representations] objectAtIndex: 0];
NSData *data = [imageRep representationUsingType: NSPNGFileType properties: nil];
[data writeToFile: @"/tmp/image.png" atomically: NO];
}
@end
现在您可以在代码中的某处设置断点,并通过在调试器的命令行中键入以下内容来调用 NSImage 引用的方法转储:
po [image dump]
源代码中唯一的变化是类别的导入。
【讨论】:
TIFFRepresentation 并将其写入 .tiff 文件。此外,如果应用程序在沙箱中运行,写入 /tmp 将不起作用。
从 Xcode 5 开始,您可以使用 QuickLook 来检查 NSImage 或 UIImage,只需在变量视图中选择它并单击眼睛图标(或按空格键)。
【讨论】: