2017-03-12 1 views
0

Ich versuche eine MPMediaQuery zu erstellen, die Ergebnisse in chronologischer Reihenfolge liefert, vorzugsweise aufsteigend oder absteigend basierend auf der Abfrage selbst.Wie man eine MPMediaQuery veranlasst, Ergebnisse basierend auf releaseDate zurückzugeben

Momentan gibt meine Abfrage Elemente in aufsteigender Chrono-Reihenfolge (am ältesten oben) zurück, aber ich möchte in der Lage sein, die Reihenfolge umzukehren. Ich brauche meine Ergebnisse in einer MPMediaQuery, damit ich sie mit dem MPMediaPlayer verwenden kann.

var qryPodcasts = MPMediaQuery() 
var titleFilter = MPMediaPropertyPredicate() 
titleFilter = MPMediaPropertyPredicate(value: "This American Life", forProperty: MPMediaItemPropertyPodcastTitle, comparisonType: .equalTo) 
qryPodcasts.addFilterPredicate(titleFilter) 

EDIT ::

Ich habe in der Lage gewesen, einen Schritt näher an mein Ziel zu bekommen aber ich habe immer noch ein Problem, das einen Absturz verursacht.

Ich habe diesen Code hinzugefügt, welche die resultierende Abfrage auf „VÖ“ basiert werden sortieren jedoch nicht alle Podcasts entsprechen so diese Eigenschaft null zu einem Absturz sein kann:

let myItems = qryPodcasts.items?.sorted{($0.releaseDate)! > ($1.releaseDate)!} 
let podCollection = MPMediaItemCollection(items: myItems!) 
myMP.setQueue(with: podCollection!) 

Wie kann ich diesen Fehler zu vermeiden und Wie gehe ich mit Artikeln ohne releaseDate um?

Antwort

0

Nur für diesen Teil: Wie kann ich diesen Fehler vermeiden und wie handle ich Artikel ohne ein releaseDate?

Vermeiden Zwangs Abwickeln mit (!) und Standardwerte für nil bieten:

let myItems = qryPodcasts.items?.sorted{($0.releaseDate ?? Date.distantFuture) > ($1.releaseDate ?? Date.distantFuture)} 

Sie besser alle anderen in Ihrem Code Zwangs unwrappings überprüfen würde, sind Sie wirklich 100% sicher, dass diejenigen nie zurückgeben nil?

+0

um ehrlich zu sein, dieses Wrapping/Entpacken Zeug in Swift fährt mich verrückt! Ich lasse normalerweise nur den Compiler angeben, was getan werden soll ... – wayneh

Verwandte Themen