Filter NSDictionary using DidSelectRow selection as key/filter object
我在两个可变数组中解析并存储了一个
1
|
trackANDAlbum = [NSMutableDictionary dictionaryWithObjects:trackArray forKeys:albumArray];
|
所以我的字典看起来像这样:
1
2 3 |
album1 = song1
album1 = song2 album1 = song3 etc. |
由于albumArray 包含重复项,我使用
我面临的问题是,当用户在 TableView 中选择特定专辑名称时,所选专辑的相应歌曲必须显示在另一个视图中。
那么是否可以识别在 TableView 的
例如,如果选择的专辑是”album1″,那么在下一个tableview中必须列出album1对应的歌曲,即song1,song2,song3。实现这个概念的任何可能性,否则我有一些更好的方法?
如果您使用albumArray 来填充您的tableview,而不是使用此代码,您可以通过tableview 中的行获取专辑名称。
1
2 3 4 |
– (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{ NSString * albumName = [albumArray objectAtIndex:indexPath.row]; } |
你可以使用这个albumName变量作为键来从你的字典中查找歌曲名称,如果你使用另一个数组然后改变数组名,是的,如果你想在这个方法之外使用albumName变量而不是让它的属性在.h 文件。
更新
使用我们的 albumName 变量从字典中检索数据
1
2 3 4 |
if([yourDictionary objectForKey:albumName]!=nil)
{ NSString * songName = [yourDictionary objectForKey:albumName]; } |
您可以使用此代码检索数据,是的,正如我所说,要在另一种方法中使用专辑名称,您必须在 .h 文件中创建其属性并在 .m 文件中合成它。
编辑
在您的情况下,单个专辑名称有多个歌曲名称,因此您的代码将是这样的。
1
2 3 4 5 |
if([yourDictionary objectForKey: albumName]!=nil)
{ NSArray * newSongAry; [newSongAry addObject:[yourDictionary objectForKey:albumName]]; } |
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/268638.html