如何在 NSPredicate 中使用多个条件?我正在使用以下代码,但返回的数组中没有任何内容。
NSPredicate *placePredicate = [NSPredicate predicateWithFormat:@"place CONTAINS[cd] %@ AND category CONTAINS[cd] %@ AND ((dates >= %@) AND (dates <= %@)) AND ((amount >= %f) AND (amount <= %f))",placeTextField.text,selectedCategory,selectedFromDate,selectedToDate,[amountFromTextField.text floatValue],[amountToTextField.text floatValue]];
NSArray *placePredicateArray = [dataArray filteredArrayUsingPredicate:placePredicate];
NSLog(@"placePredicateArray %@", placePredicateArray);
有时候数量和类别可能为空。我应该如何构建NSPredicate
?
NSCompoundPredicate
的subpredicates
属性。您还应该仔细查看@DRVic的答案-他在动态地创建谓词数组时更加高效,因为他不需要包含任何“YES”谓词,但这意味着您不知道子谓词数组中哪个谓词很容易找到其索引。 - deanWombourneNSCompoundPredicate
实例将具有子谓词数组属性,这是显而易见的。将普通的NSPredicate
转换为数组是没有意义的! - deanWombourne