关于Objective C:将脚本桥与iTunes结合使用

Using scripting Bridge with iTunes

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

我发现以下代码

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

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

1
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)>

因此可以像以下这样重复使用:

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

但是如果我重新编写代码作为选择,例如:

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

输出选定音轨的文本(?),例如:

1
2
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)>"

因此结果不能重复使用。

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


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