Also weiß ich, dass dies ein bisschen spezifisch sein kann, aber ich starrte auf meinen Code und kann dieses Problem nicht lösen. Im Grunde mache ich einen Netzwerkanruf, um spotify zu erhalten, um eine bestimmte Wiedergabeliste zu erhalten und eine Zahl zu übergeben, die schließlich die Anzahl der Lieder bestimmt, die ich zurückbekomme. Der Code ist im Grunde wie folgt:Unerwarteterweise Auspacken eines optionalen, um ein Nil nach einem API-Aufruf an Spotify zu finden
// A network call is made just above to return somePlaylist
let playlist = somePlaylist as! SPTPartialPlaylist
var songs: [SPTPartialTrack] = []
// load in playlist to receive back songs
SPTPlaylistSnapshot.playlistWithURI(playlist.uri, session: someSession) { (error: NSError!, data: AnyObject!) in
// cast the data into a correct format
let playlistViewer = data as! SPTPlaylistSnapshot
let playlist = playlistViewer.firstTrackPage
// get the songs
for _ in 1...numberOfSongs {
let random = Int(arc4random_uniform(UInt32(playlist.items.count)))
songs.append(playlist.items[random] as! SPTPartialTrack)
}
}
Das Problem kommt in dem Teil des Codes, der zufällige initialisiert. In vielleicht 1 von 20 Aufrufen dieser Funktion entwerfe ich aus irgendeinem Grund einen Nullwert für playlist.items.count und kann nicht herausfinden, warum. Vielleicht verstehe ich etwas nicht von API-Anrufen oder etwas anderem, das ich nicht sehen kann, aber ich kann es nicht verstehen.
Jeder hat irgendwelche Empfehlungen zur Behebung dieses Problems oder zur Fehlerbehebung?