ATRACK是ITReference *对象,值是一个NSImage中*对象,通过URL初始化为jpeg格式。

[[[[[aTrack artworks] data_] set] to:value] send];

我在GDB得到以下信息:

2010-03-09 16:59:42.860 Sandbox[2260:a0f] Can't pack object of class NSImage (unsupported type): <NSImage 0x10054a440 Size={0, 0} Reps=(

我然后试图以下代码:

NSData *imageData = [[NSData alloc] initWithData:[value TIFFRepresentation]];
[[[[[aTrack artworks] data_] set] to:imageData] send];

和得到这个消息代替

2010-03-09 16:46:09.341 Sandbox[2193:a0f] Can't pack object of class NSConcreteData (unsupported type): <4d4d002a 00000000>

在AppScript文档,它说,“数据”中的“艺术品”项目的属性是一个PICTPicture图像。

如何转换的NSImage中的PICT?我使用的AppScript都错了?

有帮助吗?

解决方案

Appscript没有桥接NSImage中,部分原因是NSImage中和了AppKit针对仅基金会appscript链接;部分原因是苹果事件的使用这方面没有很好地specced。从理论上讲,图像相关AEDescs应包含位图数据的标准块,但与ISTR PICT头的各种麻烦与iTunes的作品的时候。它的混乱。

NSData的未桥连的,因为包装数据转换成AEDesc没有有意义的描述符类型在很大程度上是毫无意义的。如果你想包一个NSData实例,使用+[NSAppleEventDescriptor descriptorWithDescriptorType:data:]

另外看看在artwork类的raw data属性。这是一个后此外,可能包含在一个更明智的形式的图像数据。

哦,看看所述EyeTunes框架;它不是柔性的或有效,因为使用AppleScript / appscript,但我认为它包括代码用于桥接NSImage中至AEDescs。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top