在做iOS時想要根據一個組織中的字典的一個值來過濾這個數組中的字典,想了好多辦法,看到一種簡便的,根據謂詞來過濾數據。
dataArray = [[NSMutableArray alloc] init];
NSDictionary * dataDic1 = @{@"image":[UIImage imageNamed:@"photo1.jpg"], @"content":@"I am a boy",@"publisher":@"趣玩高球", @"privateNum":@"122",@"lookNum":@"56"};
NSDictionary * dataDic2 = @{@"image":[UIImage imageNamed:@"photo2.jpg"], @"content":@"昨天中午有個男同事外出,沒把手機帶走。他老婆不停地打電話來。午睡的女同事被吵煩了,拿過手機大吼:我們在睡覺,你煩不煩!結果,那位男同事今天到現在都沒來上班!",@"publisher":@"趣玩高球", @"privateNum":@"122",@"lookNum":@"56"};
NSDictionary * dataDic3 = @{@"image":[UIImage imageNamed:@"photo3.jpg"], @"content":@"yesterday,my mom buy a apple!",@"publisher":@"趣玩高球", @"privateNum":@"122",@"lookNum":@"56"};
NSDictionary * dataDic4 = @{@"image":[UIImage imageNamed:@"photo4.jpg"], @"content":@"昨天中午有個男同事外出,沒把手機帶走。他老婆不停地打電話來。午睡的女同事被吵煩了,拿過手機大吼:我們在睡覺,你煩不煩!結果,那位男同事今天到現在都沒來上班!",@"publisher":@"趣玩高球", @"privateNum":@"122",@"lookNum":@"56"};
[dataArray addObject:dataDic1];
[dataArray addObject:dataDic2];
[dataArray addObject:dataDic3];
[dataArray addObject:dataDic4];
這裏是過濾KEY爲@“content”的值爲輸入框的值來搜索包含有這個輸入框輸入的文字的字典。
NSString * searchString = [lifeSearchController.searchBar text];
NSPredicate * predicate = [NSPredicate predicateWithFormat:@"%K CONTAINS[c] %@",@"content",searchString];
if (searchListArray != nil) {
[searchListArray removeAllObjects];
}
//過濾數據
searchListArray = [NSMutableArray arrayWithArray:[dataArray filteredArrayUsingPredicate:predicate]];
NSLog(@"return****** %@",searchListArray);
//刷新表格
[headTableView reloadData];
打印出來的數據就是現在輸入了“am”的數據,