我解析并将XML
存储在两个可变数组中,它们是albumArray和trackArray。我使用这两个数组创建了一个字典,如下所示,
trackANDAlbum = [NSMutableDictionary dictionaryWithObjects:trackArray forKeys:albumArray];
所以我的字典看起来像这样:
album1 = song1
album1 = song2
album1 = song3 etc.
由于albumArray包含重复项,因此我使用NSSet
将其删除,并将这个名为“eliminateDupe”的新数组作为UITableView
的数据源。
我面临的问题是,当用户在TableView中选择特定的专辑名称时,所选专辑的相应歌曲必须显示在另一个视图中。
因此,可以确定在TableView的DidSelectRow
中选择了哪个专辑名称,并将其作为词典trackAlAlbum的键提供,并检索相应的歌曲并将其显示在tableview中。
例如,如果所选专辑是“album1”,那么在下一个表格中必须列出与album1相对应的歌曲,即song1,song2,song3。实现这一概念的任何可能性,或者我有更好的方法?
答案 0 :(得分: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];
}
您可以使用此代码检索数据,是的,因为我说在另一种方法中使用albumName,您必须在.h文件中创建其属性并在.m文件中合成它。
修改强>
在你的情况下,你有一个单一专辑名称的歌曲名称,所以你的代码将是这样的。
if([yourDictionary objectForKey: albumName]!=nil)
{
NSArray * newSongAry;
[newSongAry addObject:[yourDictionary objectForKey:albumName]];
}