ami*_*jaj 2 core-data objective-c nspredicate nsfetchrequest ios
我有一个简单的应用程序,它有一个表视图控制器执行基于fetchRequest的NSFetchedResultsController,我的fetchRequest有,或者需要有两个完全独立的独立谓词.
一个用于在searchBar中搜索,一个用于在实际表视图中显示信息.
当我同时活动时,只有一个有效.
这是谓词:
if ([self.personSearchBar.text length] > 0)
{
NSPredicate *personPredicate = [NSPredicate predicateWithFormat:@"ANY name CONTAINS[c] %@", self.personSearchBar.text];
[fetchRequest setPredicate:personPredicate];
}
NSPredicate *p = [NSPredicate predicateWithFormat:@"transactions.whoBy.@count !=0"];
[fetchRequest setPredicate:p];
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,有两个独立的谓词,但两者都需要处于活动状态并正常工作,因为现在处于这种状态,搜索实际上并不起作用,但如果我注释掉NSPredicate*p,它就会.
我应该使用复合谓词吗?如果是,我如何将这些独立谓词串在一起?
使用an NSCompoundPredicate来组合它们.在确定需要时,将每个谓词添加到数组中.然后使用andPredicateWithSubpredicates:或orPredicateWithSubpredicates:取决于您是否需要将两个谓词或其中一个谓词应用于所有结果.
| 归档时间: |
|
| 查看次数: |
455 次 |
| 最近记录: |