我正在使用MPMediaQuery,特别是Podcasts。在这种特殊情况下,我在选择和包装/解包方面遇到了很多困难。无法弄清楚如何防止日期类型崩溃,并在Swift 3中打包
titleFilter = MPMediaPropertyPredicate(value: selectedPodcastTitle, forProperty: MPMediaItemPropertyPodcastTitle, comparisonType: .equalTo)
qryPodcasts.addFilterPredicate(titleFilter)
for junk in qryPodcasts.items!{
//works fine
if let sTitle = junk.title {
print("episode title: \(sTitle)")
}else{
print("episode title is nil")
}
//works fine
if let dRelease = junk.releaseDate {
print("episode release date: \(dRelease)")
}else{
print("episode release date is nil")
}
if #available(iOS 10.0, *) {
// can't figure out how to make this work
// crashes on some podcasts and I suspect it's when 'addedDate' is nil
if let dAdded: Date = junk.dateAdded {
print("episode added date: \(junk.dateAdded)")
}else{
print("episode added date is nil")
}
} else {
print("episode added date is not available")
}
}
您是否尝试过设置断点并遵循程序流程?也许会有一些副作用。 也可以尝试使用'junk.value(forProperty:日期添加键)'属性存取器,而不是使用属性存储器,并查看给出的内容。如果它是空的或有些怪异的,你可能会偶然发现一个快捷的错误。 – hola
实际上我没有看到日期添加键。 – hola
希望你明白这一点,祝你好运! – hola