以未知格式返回的 iTunes 目录媒体项目
iTunes directory media item returned in unknown format
我编写了以下函数来读取我的 iTunes 目录中的媒体项目列表和 returns 音乐文件。我需要 return "song titles" 但是当我 运行 它时 returned 的项目是未知格式。我很确定我需要通过 属性 过滤器 运行 它们或使用一些转换来正确获取实际名称。最后我想输出一个字符串数组中的内容。在所附的屏幕截图中,我只 运行 循环了四次。谁能指出我缺少转换?看起来输出是十六进制格式,但不清楚。
class func readMusicFiles() -> NSMutableArray {
//var songDecoded:[NSMutableArray]
let result = NSMutableArray()
let allSongsQuery:MPMediaQuery = MPMediaQuery.songsQuery();
let tempArray:NSArray = allSongsQuery.items!;
for item:AnyObject in tempArray {
if (item is MPMediaItem) {
let temp = item as! MPMediaItem;
if (temp.mediaType != MPMediaType.Music) {
continue;
}
result.addObject(item);
}
}
print(result)
return result
}
}
输出看起来像这样
"hex"不是"format";它只是 object 的内存地址的指示。忽略它。
您已获得媒体项目(在本例中为歌曲)。现在,不要说 print(result)
,而是询问他们的头衔:
for song in result {
print(song.title)
}
或者,创建一个新数组:
let titles = result.map {[=11=].title}
(此外,不要将您的函数声明为 return NSMutableArray。那是 Cocoa 的事情。尝试坚持使用 Swift 数组。例如,如果您要最终得到一个标题数组,这些是字符串,所以 return a [String]
.)
我编写了以下函数来读取我的 iTunes 目录中的媒体项目列表和 returns 音乐文件。我需要 return "song titles" 但是当我 运行 它时 returned 的项目是未知格式。我很确定我需要通过 属性 过滤器 运行 它们或使用一些转换来正确获取实际名称。最后我想输出一个字符串数组中的内容。在所附的屏幕截图中,我只 运行 循环了四次。谁能指出我缺少转换?看起来输出是十六进制格式,但不清楚。
class func readMusicFiles() -> NSMutableArray {
//var songDecoded:[NSMutableArray]
let result = NSMutableArray()
let allSongsQuery:MPMediaQuery = MPMediaQuery.songsQuery();
let tempArray:NSArray = allSongsQuery.items!;
for item:AnyObject in tempArray {
if (item is MPMediaItem) {
let temp = item as! MPMediaItem;
if (temp.mediaType != MPMediaType.Music) {
continue;
}
result.addObject(item);
}
}
print(result)
return result
}
}
输出看起来像这样
"hex"不是"format";它只是 object 的内存地址的指示。忽略它。
您已获得媒体项目(在本例中为歌曲)。现在,不要说 print(result)
,而是询问他们的头衔:
for song in result {
print(song.title)
}
或者,创建一个新数组:
let titles = result.map {[=11=].title}
(此外,不要将您的函数声明为 return NSMutableArray。那是 Cocoa 的事情。尝试坚持使用 Swift 数组。例如,如果您要最终得到一个标题数组,这些是字符串,所以 return a [String]
.)