我有一個NSPredicate
看起來像這樣:NSPredicate處理NIL的字符串作爲任何字符
NSPredicate *predicateSearch;
if ([category_array count]>0 && [location_array count]>0) {
predicateSearch =[NSPredicate predicateWithFormat:@"category_id IN %@ AND location_id IN %@ AND company_title CONTAINS %@",category_array,location_array,searchStr];
}
else if ([category_array count]>0){
predicateSearch =[NSPredicate predicateWithFormat:@"category_id IN %@ AND company_title CONTAINS %@",category_array,searchStr];
}
else if([location_array count]>0){
predicateSearch = [NSPredicate predicateWithFormat:@"location_id IN %@ AND company_title CONTAINS %@",location_array,searchStr];
}
[fetchRequest setPredicate:predicateSearch];
由於NSPredicate
是不能處理我現在用這個if語句格式化謂語Nil
值和處理Nil
值爲'ANY'。 這裏的問題是,如果它是Nil
,我還想將searchStr作爲「ANY」進行處理。 我試圖在Nil
的情況下將它設置爲空字符串,但它不起作用。 有沒有什麼辦法可以在每個案例中不使用任何If語句的情況下實現該目標(9條if語句太多)?
您可以使用'andPredicateWithSubpredicates:'。 – Larme