使用脚本Bridge与iTunes

时间:2014-01-20 16:18:31

标签: objective-c scripting-bridge

我是Objective-C的新手。我现在正试图获取所选曲目的歌曲信息。但我不能。

我发现以下代码

iTunesFileTrack *cuTrack = [iTunesApp.currentTrack get];
NSLog(@"result = %@",cuTrack);

输出当前曲目的参考(?)。像:

2014-01-21 00:07:09.908 CommunicateWithiTunes[43052:303] result = <ITunesFileTrack @0x60800005de20: ITunesFileTrack id 12825 of ITunesUserPlaylist id 12773 of ITunesSource id 74 of application "iTunes" (166)>

因此它可以重复使用,如:

NSLog(@"name = %@", cuTrack.name);
NSLog(@"location = %@", cuTrack.location);

但是如果我重新编写代码如下:

iTunesFileTrack *selectedTrack = [iTunesApp.selection get];
NSLog(@"result = %@",selectedTrack);

输出所选曲目的文字(?),如:

2014-01-21 00:15:40.753 CommunicateWithiTunes[43145:303] result = (
 "<ITunesFileTrack @0x61000044fe70: ITunesFileTrack id 12825 of ITunesUserPlaylist id 12773 of ITunesSource id 74 of application \"iTunes\" (166)>"

因此结果无法重复使用。

为什么会出现这种差异?或者有人能告诉我获取所选曲目信息的正确方法吗?

1 个答案:

答案 0 :(得分:3)

选择始终是一个数组(就像在AppleScript中一样)。现在只需循环遍历数组的项目。在您的示例中,只有一个。这就是控制台日志输出中的括号告诉您的内容:您的第二个result是一个数组,其中包含一个项目,该项目是对文件轨道的引用,该文件轨道本身与您的第一个result相同。