Когда этот код запускается при новой установке приложения, он работает отлично.Однако, если на устройстве ранее не было сохранено данных, эта функция вызывает сбой приложения.
Я получаю сообщение об ошибке Could not cast value of type __NSCFDictionary to NSData
и возвращает сообщение об ошибке ноля потока в следующей строке:
playlists = try! NSKeyedUnarchiver.unarchiveTopLevelObjectWithData(playlistsData as! Data) as! [String:[Song]]
Вот мой полный код функции ниже:
func getPlaylists() -> [String:[Song]] {
var playlists: [String:[Song]] = [:]
let playlistsData = defaults.object(forKey: "user_playlists")
if playlistsData != nil {
playlists = try! NSKeyedUnarchiver.unarchiveTopLevelObjectWithData(playlistsData as! Data) as! [String:[Song]]
}
return playlists
}