我有一個包含名稱和地址的對象數組。 這兩個屬性的類型都是NSString。 但是當我用這兩個結果的複合謂詞時,我沒有得到任何結果。如果我只使用一個謂詞,它會很好地工作。 有沒有人知道我的代碼裏出現了什麼問題?日Thnx複合謂詞不起作用
-(void)filterContentForSearchString:(NSString*) searchText
{
NSPredicate *resultsPredicate = [NSPredicate predicateWithFormat:@"SELF.name like[cd] %@", searchText];
NSPredicate *resultsPredicate2 = [NSPredicate predicateWithFormat:@"SELF.place like[cd] %@", searchText];
NSPredicate *compoundpred = [NSCompoundPredicate andPredicateWithSubpredicates:@[resultsPredicate, resultsPredicate2]];
self.searchResults = [self.companies filteredArrayUsingPredicate:compoundpred];
}
這是正常的,你正在尋找的東西,其中'名字'和'地點'一樣嗎?你在尋找'orPredicateWithSubpredicates:'而不是? – Larme 2014-09-01 13:41:42
不,它關於一家公司。例如柏林的名稱和地點 – dan 2014-09-01 15:22:55
Try:'NSPredicate * predicate = [NSPredicate predicateWithFormat:@「SELF.name like [cd]%@」,searchText]; NSArray * results = [self.companies filteredArrayUsingPredicate:predicate]; for(YourCompagnyClass * aCompany in results){if([aCompagny.place isEqualToString:@「searchText」] {NSLog(@「IT EXISTS);}}'看看你是否真的有結果,也許你想用'contains'代替'like' – Larme 2014-09-01 15:39:07