【问题标题】:Release Date of MPMediaItem returning Nil (Swift 4)返回 Nil 的 MPMediaItem 的发布日期(Swift 4)
【发布时间】:2017-07-22 12:20:11
【问题描述】:

我正在尝试在音乐播放器中获得歌曲的发行年份,但我得到的只是返回的 nil 值。我试过用我能想到的各种方式来写它,它总是返回 nil。除了这似乎是一个已知问题外,我几乎没有找到任何帮助......这是我发现的一个看起来可能有帮助的资源:@​​987654321@ 但我相信这是客观的 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?
    }
}

【问题讨论】:

    标签: ios swift xcode mpmediaitem swift4


    【解决方案1】:

    我遇到了同样的问题,感谢您链接的资源,我设法解决了!我将 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
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-04-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-07
      • 2018-01-29
      • 1970-01-01
      相关资源
      最近更新 更多