2015-05-28 130 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]]()