使用DidSelectRow选项过滤NSDictionary作为键/过滤器对象
我解析并将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。实现这个概念的任何可能性,或者我是否有更好的方法?
如果您使用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]];
}
感谢您的答复。我需要知道如何使用此albumName过滤字典?。示例代码来帮助可能。 – user2114872 2013-02-27 11:34:28
现在检查我已更新我的答案。 – Dilip 2013-02-27 11:39:10
非常感谢,它正在工作,我的问题解决了。 – user2114872 2013-02-27 12:01:28
您在tableview右边显示专辑名称? – Dilip 2013-02-27 11:00:30
是在桌面视图 – user2114872 2013-02-27 11:16:16