0

我解析并存储XML在两个可变数组中,它们是albumArray 和trackArray。我使用这两个数组创建了一个字典,如下所示,

 trackANDAlbum = [NSMutableDictionary dictionaryWithObjects:trackArray forKeys:albumArray];

所以我的字典看起来像这样:

 album1 = song1 
 album1 = song2
 album1 = song3 etc. 

由于 albumArray 包含重复项,我使用它消除了它,NSSet并将这个名为“eliminateDupe”的新数组作为UITableView.

我面临的问题是,当用户在 TableView 中选择特定专辑名称时,所选专辑的相应歌曲必须显示在另一个视图中。

那么是否可以识别在DidSelectRowTableView 中选择了哪个专辑名称,并将其作为字典 trackANDAlbum 的键,并检索相应的歌曲并将其显示在 tableview 中。

例如,如果选择的专辑是“album1”,那么在下一个tableview中必须列出与album1对应的歌曲,即song1,song2,song3。实现这个概念的任何可能性,或者我有更好的方法吗?

4

1 回答 1

1

如果您使用albumArray 来填充您的tableview,而不是使用此代码,您可以在tableview 中的行中获取专辑名称。

 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
         NSString * albumName = [albumArray objectAtIndex:indexPath.row];
        }

你可以使用这个albumName变量作为从你的字典中查找歌曲名称的键,如果你使用另一个数组然后改变数组名,是的,如果你想在这个方法之外使用albumName变量而不是在.h文件中创建它的属性.

更新

使用我们的 albumName 变量从字典中检索数据

if([yourDictionary objectForKey:albumName]!=nil)
   {               
     NSString * songName = [yourDictionary objectForKey:albumName];
   }

您可以使用此代码检索数据,是的,正如我所说,要在另一种方法中使用专辑名称,您必须在 .h 文件中创建其属性并在 .m 文件中合成它。

编辑

在您的情况下,单个专辑名称有多个歌曲名称,因此您的代码将是这样的。

if([yourDictionary objectForKey: albumName]!=nil)
       {     
          NSArray * newSongAry;
         [newSongAry addObject:[yourDictionary objectForKey:albumName]];
       }
于 2013-02-27T11:21:09.817 回答