2013-02-27 84 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