我正在使用这个,但没有得到任何返回的数组.
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?
解决方法 我会倾向于处理这一个零碎.那是,placePredicate = [nspredicate predicateWithFormat:@"place CONTAINS[cd] %@",placeTextFIEld.text];NSMutableArray *compoundPredicateArray = [ NSMutableArray arrayWithObject: placePredicate ]; if( selectedcategory != nil ) // or however you need to test for an empty category { categoryPredicate = [nspredicate predicateWithFormat:@"category CONTAINS[cd] %@",selectedcategory]; [ compoundPredicateArray addobject: categoryPredicate ]; }// and similarly for the other elements.
注意,当我知道没有一个时,我甚至不打扰到数组的类别(或任何其他)的谓词.
// Then nspredicate *predicate = [NSCompoundPredicate andPredicateWithSubpredicates: compoundPredicateArray ];
如果我打算做很多,我不会使用格式化方法,而是围绕构建块,只需更改使用之间的任何更改.
总结以上是内存溢出为你收集整理的objective-c – NSPredicate中的多个条件全部内容,希望文章能够帮你解决objective-c – NSPredicate中的多个条件所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)