返回 Nil 的 MPMediaItem 的发布日期(Swift 4)
Posted
技术标签:
【中文标题】返回 Nil 的 MPMediaItem 的发布日期(Swift 4)【英文标题】:Release Date of MPMediaItem returning Nil (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?
【问题讨论】:
【参考方案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
【讨论】:
以上是关于返回 Nil 的 MPMediaItem 的发布日期(Swift 4)的主要内容,如果未能解决你的问题,请参考以下文章
具有空 URL 的 Objective-C MPMediaItem
如何提高 MPMediaItem 的频率范围? (如参数均衡器,例如,将 500 Hz 提高 12 dB)