MPMediaQuery.artistsQuery() 分组显示
MPMediaQuery.artistsQuery() to show in groups
我知道我很可能在这里遗漏了一些非常基本的东西,但我被卡住了。为什么以下代码会生成每个曲目的艺术家的 table 视图而不是分组列出的艺术家(即为什么每个艺术家列出 20 次左右而不是全部分组在一起以便每个艺术家只列出一次) ?我已经尝试了下面提到的集合和项目版本。我究竟做错了什么?我该如何解决?任何帮助表示赞赏。提前致谢...
var tableData = MPMediaQuery.artistsQuery()
override func viewDidLoad() {
super.viewDidLoad()
self.artistTableView.registerClass(UITableViewCell.self, forCellReuseIdentifier: "cell")
}
func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return 1
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return self.tableData.collections!.count
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell: UITableViewCell = self.artistTableView.dequeueReusableCellWithIdentifier("cell")! as UITableViewCell
let artist: MPMediaItem = tableData.items![indexPath.row]
//let artist: MPMediaItemCollection = tableData.collections![indexPath.row]
if artist.valueForProperty(MPMediaItemPropertyArtist) == nil {
cell.textLabel?.text = "Artist" as String
} else {
let artistName = artist.valueForProperty(MPMediaItemPropertyArtist) as! NSString
cell.textLabel?.text = artistName as String
}
return cell
}
我要回答我自己的问题...
问题出在这里:
let artist: MPMediaItemCollection = tableData.collections![indexPath.row]
if artist.valueForProperty(MPMediaItemPropertyArtist) == nil {
并在这里得到回答:
感谢韦斯...
我知道我很可能在这里遗漏了一些非常基本的东西,但我被卡住了。为什么以下代码会生成每个曲目的艺术家的 table 视图而不是分组列出的艺术家(即为什么每个艺术家列出 20 次左右而不是全部分组在一起以便每个艺术家只列出一次) ?我已经尝试了下面提到的集合和项目版本。我究竟做错了什么?我该如何解决?任何帮助表示赞赏。提前致谢...
var tableData = MPMediaQuery.artistsQuery()
override func viewDidLoad() {
super.viewDidLoad()
self.artistTableView.registerClass(UITableViewCell.self, forCellReuseIdentifier: "cell")
}
func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return 1
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return self.tableData.collections!.count
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell: UITableViewCell = self.artistTableView.dequeueReusableCellWithIdentifier("cell")! as UITableViewCell
let artist: MPMediaItem = tableData.items![indexPath.row]
//let artist: MPMediaItemCollection = tableData.collections![indexPath.row]
if artist.valueForProperty(MPMediaItemPropertyArtist) == nil {
cell.textLabel?.text = "Artist" as String
} else {
let artistName = artist.valueForProperty(MPMediaItemPropertyArtist) as! NSString
cell.textLabel?.text = artistName as String
}
return cell
}
我要回答我自己的问题...
问题出在这里:
let artist: MPMediaItemCollection = tableData.collections![indexPath.row]
if artist.valueForProperty(MPMediaItemPropertyArtist) == nil {
并在这里得到回答:
感谢韦斯...