gpt4 book ai didi

ios - 我如何计算包含特定艺术家的文件?

转载 作者:行者123 更新时间:2023-11-29 01:47:16 25 4
gpt4 key购买 nike

我从文件夹中获取数据。我有几个 UITableViewController。当我从艺术家 UITableViewController 移动到歌曲 UITableViewController 时,我希望它只显示特定艺术家的歌曲。我做到了,但我得到了一些空行。我认为这是因为我计算了所有 mp3 文件数组。我如何统计包含特定艺术家的文件?

    override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
// #warning Potentially incomplete method implementation.
// Return the number of sections.
return 1 ?? 0
}

override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
// #warning Incomplete method implementation.
// Return the number of rows in the section.
return contentArray.count ?? 0
}

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("artistTwo", forIndexPath: indexPath) as! SongsCellArtist

var data = contentArray[indexPath.row]
var documentFolder = fileManager.URLsForDirectory(NSSearchPathDirectory.DocumentDirectory, inDomains: NSSearchPathDomainMask.UserDomainMask)
var urlForPlayer: NSURL!

if var urlFromFolder: NSURL = documentFolder.first as? NSURL {
urlForPlayer = urlFromFolder.URLByAppendingPathComponent(data)
}
println(urlForPlayer)

var player = AVPlayerItem(URL: urlForPlayer)
var nameSong: String!
var nameAlbum: String!
var nameArtistForCell: String!
var dataForImage: NSData!

var commonMetaData = player.asset.commonMetadata as! [AVMetadataItem]
for item in commonMetaData {
if item.commonKey == "title" {
nameSong = item.stringValue
}
if item.commonKey == "album" {
nameAlbum = item.stringValue
}
if item.commonKey == "artist" {
nameArtistForCell = item.stringValue
}
if item.commonKey == "artwork" {
dataForImage = item.dataValue
}
}

var arrayFromCell: [String]!
if nameArtistForCell == nameArtist {
cell.nameSong?.text = nameSong

if nameAlbum != nil {
cell.artistAlbumName?.text = "\(nameArtistForCell) - \(nameAlbum)"
} else {
cell.artistAlbumName?.text = "\(nameArtistForCell)"
}

if dataForImage != nil {
cell.imageSongs?.image = UIImage(data: dataForImage)

}
}

return cell
}

enter image description here

最佳答案

如果您的内容没有填满屏幕,默认行为是在 TableView 的末尾显示空行。要删除这些空行,请在您的 viewDidLoad 调用中执行以下操作:

tableView.tableFooterView = UIView(frame: CGRectZero)

要过滤您的 Array 以查找确实有内容的项目,我建议您使用 filter 方法。仅包含 StringsArray 示例:

let filteredArray = contentArray.filter { data in

var data = contentArray[indexPath.row]
var documentFolder = fileManager.URLsForDirectory(NSSearchPathDirectory.DocumentDirectory, inDomains: NSSearchPathDomainMask.UserDomainMask)
var urlForPlayer: NSURL!

if var urlFromFolder: NSURL = documentFolder.first as? NSURL {
urlForPlayer = urlFromFolder.URLByAppendingPathComponent(data)
}

println(urlForPlayer)

var player = AVPlayerItem(URL: urlForPlayer)
var nameSong: String!
var nameAlbum: String!
var nameArtistForCell: String!
var dataForImage: NSData!

var commonMetaData = player.asset.commonMetadata as! [AVMetadataItem]
for item in commonMetaData {
if item.commonKey == "title" {
nameSong = item.stringValue
}
if item.commonKey == "album" {
nameAlbum = item.stringValue
}
if item.commonKey == "artist" {
nameArtistForCell = item.stringValue
}
if item.commonKey == "artwork" {
dataForImage = item.dataValue
}
}

// only add this to my new array, if I have all available meta data information
return nameSong != nil && nameAlbum && nil && nameArtistForcell != nil && dataForImage && nil
}

您可以阅读有关闭包表达式的更多信息 in the Docs .

关于ios - 我如何计算包含特定艺术家的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31762327/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com