2015-05-28 49 views
1

因此,我在我的應用程序中使用mpmediapicker檢索歌曲信息。我想分配歌曲信息到詞典,因此很容易將其填充到tableview。但是,當將值賦給for循環的字典時,我遇到了麻煩。如何使用for循環將字符串分配給NSDictionary?

這裏是我的代碼:

for thisItem in mediaItemCollection!.items as! [MPMediaItem]{ 

     let itemUrl = thisItem.valueForProperty(MPMediaItemPropertyAssetURL) 
      as? NSURL 

     let itemTitle = 
     thisItem.valueForProperty(MPMediaItemPropertyTitle) 
      as? String 

     let itemArtist = 
     thisItem.valueForProperty(MPMediaItemPropertyArtist) 
      as? String 

     let itemArtwork = 
     thisItem.valueForProperty(MPMediaItemPropertyArtwork) 
      as? MPMediaItemArtwork 


     playlist = ["title" : itemTitle! , "artist" : itemArtist!, "song_url" : itemUrl!] 


    } 

以下是我得到:

Optional({ 
    artist = "ASKING ALEXANDRIA"; 
    "song_url" = "ipod-library://item/item.mp3?id=5357233978197423496"; 
    title = Alerion; 
}) 

它只能檢索最後一首歌。我該如何解決這個問題?

我想要的格式是如下圖所示:

Optional({artist = "ASKING ALEXANDRIA";"song_url" = "ipod-library://item/item.mp3?id=5357233978197423496";title = Alerion;}, {artist = "ASKING ALEXANDRIA";"song_url" = "ipod-library://item/item.mp3?id=5357239348197423496"; title = The Prophecy;}, {artist = "ASKING ALEXANDRIA";"song_url" = "ipod-library://item/item.mp3?id=53572339781974234123";title = Breathless;}) 

我怎麼能這樣做?

回答

1

如果我沒看錯的播放列表是NSDictionary

你必須創建一個NSMutableArray

var playlistArray : NSMutableArray = [] 

現在將playlist添加到array for循環中。在完成環

println("\(playlistArray)") 
+0

非常感謝後

playlistArray.addObject(playlist) 

打印,您的建議是工作:d –

+0

隨時歡迎@EgaSetyaPutra –

0

你沒有追加新的數據,你只是做數組的數組等於值

試試這個:

playlist += ["title" : itemTitle! , "artist" : itemArtist!, "song_url" : itemUrl!] 

playlist.append(["title" : itemTitle! , "artist" : itemArtist!, "song_url" : itemUrl!]) 

假設你的播放列表是一個數組可以創建的字典:

var playlist : [Dictionary<String, Int>] = [] 

var playlist = [Dictionary<String, Int>]() 

var playlist : [[String:Int]] = [] 

var playlist = [[String:Int]]()