2012-12-31 20 views
1

我需要用不同的類來搜索,而不同的類是宋,另一個是相冊。蝕刻其中之一是代表與他的財產(名稱,網址等)的歌曲/專輯。 現在我正在使用此代碼通過搜索名稱屬性來搜索songArray中的歌曲,我還需要能夠搜索albumArray中的名稱屬性。如何使用predicateWithFormat作爲兩個不同的類

-(void)filterContentForSearchText:(NSString*)searchText scope:(NSString*)scope { 

    // Update the filtered array based on the search text and scope. 
    // Remove all objects from the filtered search array 
    [self.filteredSongArray removeAllObjects]; 

    // Filter the array using NSPredicate 
    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF._songName contains[cd] %@",searchText]; 

    filteredSongArray = [NSMutableArray arrayWithArray:[_myDataMgr.songArray filteredArrayUsingPredicate:predicate]]; 
} 

所以我qustion是我怎麼能告訴謂語也看在AlbumArray 謝謝大家。

UPDATE: 我跑的AlbumArray另一個謂詞後,我得到了,結果我添加了兩個數組。感謝您的重播是非常有幫助的!

+0

您可以在Album數組上運行相同的謂詞,然後組合兩個已過濾的數組嗎?或者結合歌曲和專輯數組,然後在該臨時數組上運行謂詞? –

+0

在兩個對象中對歌曲名稱和專輯名稱(例如_name)使用相同的屬性。獲取單個陣列中的所有專輯和歌曲對象。然後應用謂詞[NSPredicate predicateWithFormat:@「SELF.name contains [cd]%@」,searchText] –

+0

我會嘗試聽起來不錯的主意 – Sosily

回答

1

可以過濾數組內容是這樣的:

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(songName CONTAINS[cd] %@)", searchText]; 
[self.filteredSongArray addObjectsFromArray [_myDataMgr.songArray filteredArrayUsingPredicate:predicate]]; 

無需在上游添加自....

希望這有助於... !!!

相關問題