我有一个包含名称和地址的对象数组。 这两个属性的类型都是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