В настоящее время я пытаюсь сделать приложение для плейлиста. Я пытаюсь сохранить и получить данные списка воспроизведения из NSUserDefaults. У меня нет проблем при сохранении данных, но при получении данных я получил ошибку.Как получить данные из NSUserDefaults?
я получил:
Нагрузочное приложение из-за неперехваченное исключением 'MPMediaItemCollectionInitException', причина: «-init не поддерживается, используйте -initWithItems:
Я следующий ответ от Play iPod playlist retrieved from a saved persistentid list но я стараюсь писать это быстро.
вот моя функция сохранения:
func savePlaylist(var mediaItemCollection: MPMediaItemCollection){
var items: NSArray = mediaItemCollection.items
var listToSave: NSMutableArray = NSMutableArray()
for song in items{
var persistentId: AnyObject! = song.valueForProperty(MPMediaItemPropertyPersistentID)
listToSave.addObject(persistentId)
}
var data: NSData = NSKeyedArchiver.archivedDataWithRootObject(listToSave)
NSUserDefaults.standardUserDefaults().setObject(data, forKey: "songsList")
NSUserDefaults.standardUserDefaults().synchronize()
}
и вот мой получить функцию:
func setupMusic(){
if NSUserDefaults.standardUserDefaults().objectForKey("songsList") != nil{
var theList: NSMutableArray = NSMutableArray()
var data: NSData = (NSUserDefaults.standardUserDefaults().objectForKey("songsList") as? NSData)!
var decodedData: NSArray = (NSKeyedUnarchiver.unarchiveObjectWithData(data) as? NSArray)!
theList.addObjectsFromArray(decodedData as [AnyObject])
var allTheSongs: NSMutableArray = NSMutableArray()
for var i = 0; i < theList.count; i++ {
var songQuery = MPMediaQuery.songsQuery()
var songs: NSArray = songQuery.items
allTheSongs.addObject(songs)
}
var currentQueue: MPMediaItemCollection = MPMediaItemCollection()
myMusicPlayer?.setQueueWithItemCollection(currentQueue)
}else{
println("fail!!!!!!!!!!!!")
}
}
Как я могу это исправить?
где же я положил инициализации (пункты пункты:! [AnyObject])? –
Откуда берутся «itemsArray»? –
Ох, я понял. Спасибо за помощь –