在运行时过滤NSFetchedResultsController结果

时间:2011-04-04 15:19:50

标签: cocoa-touch core-data nsfetchedresultscontroller

使用NSFetchedResultsController实现Core Data对象的运行时过滤的最佳方法是什么?

例如,我希望能够在RecordStore实体中显示所有Record实体,但也可以过滤RecordStore中所有记录的某些预定义标准,例如(ANY recordStore.records.count> 0)。 / p>

我读到在创建后更改NSFetchedResultsController的谓词是不好的。那么我应该将获取的结果存储在我可以过滤的NSArray中并将其用作UITableView的数据源,还是应该创建多个NSFetchedResultsControllers?

2 个答案:

答案 0 :(得分:2)

您可以在需要更新时重新获取数据。如果数据本身发生了变化,那么您可以再次调用fetch。如果您的条件已更改,请在NSFetchedResultsController上设置谓词,然后调用fetch。

答案 1 :(得分:0)

创建NSFetchRequest实例,每次更新请求并执行提取。如果您正在使用,请删除缓存:

fetch('http://no-tld.example/androidLogin', {
    method: 'POST',
    headers: { 'Accept': 'application/json','Content-Type': 'application/json',},
    body: JSON.stringify({ email: 'chesterfield@gmail.com', password: '123456'})
}).then((response) => response.json())
.then((responseData) => {
    console.log("responseData : " +responseData); // fetch response data
}).catch((error) => {
    console.log("error : " +error); // error
});

阅读苹果文档:https://developer.apple.com/reference/coredata/nsfetchedresultscontroller