Question

Atrack est un objet ITReference *, la valeur est un objet NSImage *, initialisé par l'intermédiaire d'une URL à un jpeg.

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

Je reçois le message suivant dans 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=(

J'ai ensuite essayé le code suivant:

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

et ce message à la place

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

Dans la documentation AppScript, il est dit que les « données » propriété de l'élément « oeuvre » est une image PICTPicture.

Comment puis-je convertir un NSImage à un PICT? Suis-je utiliser le AppScript tout faux?

Était-ce utile?

La solution

Appscript ne pont pas NSImage, en partie parce que NSImage est AppKit et des liens appscript contre Fondation seulement; en partie parce que ce domaine d'utilisation des événements Apple n'est pas bien specced. En théorie, AEDescs liés à l'image doit contenir un bloc de données standard bitmap, mais ISTR divers tracas avec les en-têtes PICT lorsqu'ils traitent avec des œuvres iTunes. Il est en désordre.

NSData ne sont pas pontés parce que les données d'emballage dans un AEDesc sans un type significatif de descripteurs est largement inutile. Si vous voulez emballer une instance NSData, utilisez +[NSAppleEventDescriptor descriptorWithDescriptorType:data:].

Jetez aussi un coup d'œil à la propriété artwork de la classe raw data. C'est un ajout plus tard et peut contenir des données d'image sous une forme plus sensible.

Oh, et jeter un oeil sur le cadre de EyeTunes; il est pas aussi souple que l'utilisation efficace AppleScript / appscript, mais je pense qu'il inclut le code pour combler NSImage à AEDescs.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top