récupérer dans Cocoa le résultat d'un applescript
Nicololo
Membre
Bonjour,
J'aurais besoin de pouvoir récupérer dans Cocoa l'illustration d'iTunes.
J'ai écrit (vite fait) un applescript pour récupérer l'illustration dans iTunes :
J'ai créé ensuite un projet Cocoa et une méthode pour récupérer l'illustration dans Cocoa et la mettre dans une vue.
code Cocoa
Mais là pas moyen d'exploiter les data du script, j'obtiens des messages d'erreur :
Je ne connais pas grand chose à Cocoa mais j'ai dû oublier un truc dans ma méthode, mais je ne sais pas quoi.
Merci d'avance à ceux qui se pencheront sur mon problème car là je sèche.
Nicolas
J'aurais besoin de pouvoir récupérer dans Cocoa l'illustration d'iTunes.
J'ai écrit (vite fait) un applescript pour récupérer l'illustration dans iTunes :
set theControllerSelection to selection_iTunes()<br />tell theControllerSelection to update_info_selection()<br /><br />set theIllustration to return_illustration() of theControllerSelection<br /><br />on selection_iTunes()<br /> script<br /> <br /> property songs_list : {}<br /> property firstIllustrationFound : null<br /> <br /> on return_list()<br /> return songs_list<br /> end return_list<br /> <br /> on return_illustration()<br /> return firstIllustrationFound<br /> end return_illustration<br /> <br /> on update_info_selection()<br /> <br /> tell application "iTunes"<br /> -- récupération de la liste des chansons<br /> set iTunes_list to the selection of the browser window 1<br /> set my songs_list to every item of iTunes_list<br /> end tell<br /> <br /> set iTunesArtwork to get_iTunes_illustration()<br /> set my firstIllustrationFound to iTunesArtwork<br /> <br /> end update_info_selection<br /> <br /> on get_iTunes_illustration()<br /> tell application "iTunes"<br /> repeat with i in my songs_list<br /> try<br /> set itunes_artwork to artwork 1 of i<br /> if ((format of itunes_artwork) as string) contains "PNG" or ((format of itunes_artwork) as string) contains "JPEG" then<br /> -- une illustration a été trouvée<br /> set illustration_data to data of itunes_artwork<br /> exit repeat<br /> else<br /> set illustration_data to ""<br /> end if<br /> on error<br /> set illustration_data to ""<br /> end try<br /> end repeat<br /> end tell<br /> return illustration_data<br /> end get_iTunes_illustration<br /> <br /> end script<br />end selection_iTunes<br />
J'ai créé ensuite un projet Cocoa et une méthode pour récupérer l'illustration dans Cocoa et la mettre dans une vue.
code Cocoa
- (IBAction)loadImage:(id)sender<br />{<br />Â Â Â Â illustration = [[NSImage alloc] initWithData: [script executeAndReturnError:nil]];<br />Â Â Â Â [viewIllustration setImage:illustration];<br />}<br />
Mais là pas moyen d'exploiter les data du script, j'obtiens des messages d'erreur :
2004-10-08 22:22:34.483 testImage[1106] *** -[NSAppleEventDescriptor bytes]: selector not recognized
2004-10-08 22:22:34.520 testImage[1106] *** -[NSAppleEventDescriptor bytes]: selector not recognized
Je ne connais pas grand chose à Cocoa mais j'ai dû oublier un truc dans ma méthode, mais je ne sais pas quoi.
Merci d'avance à ceux qui se pencheront sur mon problème car là je sèche.
Nicolas
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Or cette méthode retourne un objet NSAppleEventDescriptor, alors que initWithData: de NSImage demande une NSData.
Essaie de remplacer ta première ligne dans l'action loadImage: par :
.
merci, ça marche, du moins je n'ai plus d'erreurs. L'image ne s'affiche pas dans ma view mais je vais bien trouver. ;D
je me doutais qu'il manquait le descripteur, j'avais essayé en mettant par hasard dataValue mais ça ne fonctionnait pas.
merci beaucoup et peut-être à plus.