2017-07-22 10 views
0

音楽プレイヤーでrealeaseの年の曲を取得しようとしていますが、返された値はすべて返されません。私は考えることができるあらゆる方法でそれを書こうとしました、そして、それは常にゼロを返します。私は、これが既知の問題であることを除いて、これに関する少し助けを見つけました...これは助けてくれるように見えた1つのリソースです:Get album year for item in iPod library?しかしこれは客観的なCだと私は信じています。誰もSwiftコードでMPMediaItemsのリリース日を取得する方法を知っていますか?または、リンクされた記事をSwift言語に翻訳して試してみる方法を知っています。本当にありがとう!Nilを返すMPMediaItemのリリース日(Swift 4)

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? 
    } 
} 

答えて

0

同じ問題があり、リンクしたリソースのおかげで解決できました。私はObjective-CコードをSwift 4に翻訳しました.XOS 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 
    } 
} 
関連する問題