簡體   English   中英

MPMediaItem的發布日期返回Nil(迅速4)

[英]Release Date of MPMediaItem returning Nil (Swift 4)

我正在嘗試獲取音樂播放器中歌曲的發行年份,但我得到的只是返回的零值。 我嘗試過用我能想到的所有方式編寫它,但它始終返回nil。 除了這似乎是一個已知的問題外,我對此幾乎沒有幫助。這是我發現的一種資源,它看起來可能會有所幫助: 在iPod庫中獲取專輯的年份? 但是我相信這是客觀的C。我的問題是這個。 有誰知道如何在Swift代碼中獲取MPMediaItems的發布日期? 或者知道如何將鏈接的文章翻譯為Swift語言,以供我嘗試。 謝謝一群!

func getYear() {
    let mediaQuery = MPMediaQuery.songs()
    for songs in mediaQuery.items! {
        print(songs.title)
        print(songs.releaseDate)
        print(((songs.value(forProperty: MPMediaItemPropertyReleaseDate)!))
        print(songs.getReleaseDate())
    }
}

extension MPMediaItem {
    @available(iOS 10.0, *)
    func getReleaseDate() -> Date? {
        return self.perform(#selector(getter: MPMediaItem.releaseDate))?.takeUnretainedValue() as! NSDate? as Date?
    }
}

我遇到了同樣的問題,由於您鏈接的資源,我設法解決了它! 我將Objective-C代碼翻譯為Swift 4,即使在帶有Xcode 9的iOS 11上,它也可以像魅力一樣工作,這是代碼:

let yearNumber: NSNumber = item.value(forProperty: "year") as! NSNumber
if (yearNumber.isKind(of: NSNumber.self)) {
    let year = yearNumber.intValue
    if (year != 0) {
               // do something with year
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM