objective-c - NSImage 来自 NSData 信息

标签 objective-c macos cocoa

我有一个 NSData 对象,据说它包含 TIFF 格式的图像数据。 Here是输出的示例(在左上角的框中)。

但是,当我 NSLog 输出时,我得到以下信息:

<NSImage 0x10013f620 Size={200, 200} Reps=(
    "NSBitmapImageRep 0x1001220d0 Size={200, 200} ColorSpace=(not yet loaded) BPS=8 BPP=(not yet loaded) Pixels=200x200 Alpha=NO Planar=NO Format=(not yet loaded) CurrentBacking=nil (faulting) CGImageSource=0x100150070"
)>

这让我觉得它实际上可能是一个 BitmapImage。

无论如何,当我执行以下操作时:

NSData *artworkData;
NSImage *image;
artworkData = [self.currentTrack artwork]; // actually sets memory, like expected
image = [[NSImage alloc] initWithData:artworkData]; // causes the error

我收到此错误:

2012-12-03 02:39:56.263 test[92556:303] -[NSImage length]: unrecognized selector sent to instance 0x10064ec90
2012-12-03 02:39:56.264 test[92556:303] -[NSImage length]: unrecognized selector sent to instance 0x10064ec90

有什么想法吗?这已经困扰我很长一段时间了。

谢谢!

最佳答案

您确定正在处理 NSData 对象吗?日志输出中的对象不是数据,它已经是一个 NSImage。因此,尝试将其用作 -[NSImage initWithData:] 的参数将会失败。

关于objective-c - NSImage 来自 NSData 信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13681525/

相关文章:

objective-c - 简单的 libxml2 HTML 解析示例,使用 Objective-c、Xcode 和 HTMLparser.h

ios - 在 subview 中像选取框一样滚动 UILabel

objective-c - NSTableView - 在长 TableView 中以编程方式显示值

objective-c - 将 NSTextField 转换为 Label

objective-c - 正确裁剪 CIGaussianBlur

objective-c - SMLoginItemSetEnabled-从使用沙盒登录开始-Xcode 6.3(插图)

c - 通过 TCP 发送结构(C 编程)

java - 与 MacBook Pro 上的 64 位 Eclipse 不兼容的 JVM 错误消息

macos - 从 C/C++ 程序采样 Mac OS X 上的进程

cocoa - iOS 7 : Restrict device current orientation when modal view controller is presented