我怎样才能为两个不同的类使用predicateWithFormat

时间:2012-12-31 09:34:22

标签: iphone objective-c ios xcode

我需要对不同的课程进行短暂搜索,而歌曲是另一个是专辑。蚀刻其中一个代表歌曲/专辑与他的财产(名称,网址等)。 现在我使用此代码通过搜索name属性从我的songArray中搜索歌曲,我还需要能够在albumArray中搜索,也可以在name属性中搜索。

-(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中也是如此 谢谢大家。

更新 我在AlbumArray上运行另一个谓词,在得到结果后,我添加了两个数组。谢谢你的重播非常有帮助!

1 个答案:

答案 0 :(得分:1)

您可以像这样过滤数组内容:

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

无需在谓词中添加SELF ....

希望这有助于...... !!!