我是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)>"
因此结果无法重复使用。
为什么会出现这种差异?或者有人能告诉我获取所选曲目信息的正确方法吗?
答案 0 :(得分:3)
选择始终是一个数组(就像在AppleScript中一样)。现在只需循环遍历数组的项目。在您的示例中,只有一个。这就是控制台日志输出中的括号告诉您的内容:您的第二个result
是一个数组,其中包含一个项目,该项目是对文件轨道的引用,该文件轨道本身与您的第一个result
相同。