2013-02-27 83 views
0

我解析并将XML存储在两个可变数组中,它们是albumArray和trackArray。我创建了使用这两个数组的字典,即如下,使用DidSelectRow选项过滤NSDictionary作为键/​​过滤器对象

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

所以我的字典里是这样的:

album1 = song1 
album1 = song2 
album1 = song3 etc. 

由于albumArray包含重复,我消灭它使用NSSet而这个新数组名为“eliminationDupe”作为UITableView的数据源。

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

因此,可以确定在TableView的DidSelectRow中选择了什么专辑名称,并将其作为字典trackANDAlbum的关键字,并检索相应的歌曲并将其显示在tableview中。

例如,如果所选专辑是“专辑1”,那么在下一个表格视图中,必须列出对应于专辑1的歌曲,即song1,song2,song3。实现这个概念的任何可能性,或者我是否有更好的方法?

+0

您在tableview右边显示专辑名称? – Dilip 2013-02-27 11:00:30

+0

是在桌面视图 – user2114872 2013-02-27 11:16:16

回答

1

如果您使用albumArray填充tableview而不是使用此代码,则可以通过tableview中的某行获取相册名称。

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

而且你可以使用这个ALBUMNAME变量作为键从字典中找到歌曲名,如果您使用的,然后另一个数组根据改变数组名,是的,如果你想使用ALBUMNAME变量此法之外使其在.h文件中的属性。

UPDATE

对于使用从字典retriving数据我们ALBUMNAME变量

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

您可以使用此代码ritrive数据,是的,我说要用ALBUMNAME另一种方法,你必须做出它的属性在.h文件中,并将其合成到.m文件中。

编辑

你的情况,你有一个专辑名称多首歌曲的名称,以便您的代码戈纳是这样。

if([yourDictionary objectForKey: albumName]!=nil) 
     {  
      NSArray * newSongAry; 
     [newSongAry addObject:[yourDictionary objectForKey:albumName]]; 
     } 
+0

感谢您的答复。我需要知道如何使用此albumName过滤字典?。示例代码来帮助可能。 – user2114872 2013-02-27 11:34:28

+0

现在检查我已更新我的答案。 – Dilip 2013-02-27 11:39:10

+0

非常感谢,它正在工作,我的问题解决了。 – user2114872 2013-02-27 12:01:28