Core data NSFetchresultsController多谓词
我有一个CoreData模型对象,其中包含一个名为sessionID的类型(每次用户在应用程序中使用某个功能时都会生成uuid)——数据会源源不断地进入,并在每个会话中使用相同的sessionID进行记录 记录的数据如下所示:x行数,比如sessionID:…1,然后y个sessionID的记录数:…2 ``` 等等。 ``` 我正在使用NSFetchResultsController在UITableView上向用户显示记录,(它可以正常工作),但是,我希望有一个选项可以在所有记录和唯一sessionID作为行显示在表视图上之间切换。NSFetchResultController是否可以实现这一点 虽然我将请求设置为返回不同的结果,但它似乎不起作用,我仍在获取所有记录 ```Core data NSFetchresultsController多谓词,core-data,nsfetchedresultscontroller,Core Data,Nsfetchedresultscontroller,我有一个CoreData模型对象,其中包含一个名为sessionID的类型(每次用户在应用程序中使用某个功能时都会生成uuid)——数据会源源不断地进入,并在每个会话中使用相同的sessionID进行记录 记录的数据如下所示:x行数,比如sessionID:…1,然后y个sessionID的记录数:…2 ``` 等等。 ``` 我正在使用NSFetchResultsController在UITableView上向用户显示记录,(它可以正常工作),但是,我希望有一个选项可以在所有记录和唯一sess
```
returnsDistinctResults
不适用于fetchedResultsController。使用fetchedResultsController的sectionNameKeyPath
按sessionId
分组
结果将是许多部分,每个部分包含具有相同sessionid的条目
如果要显示所有条目,则不显示节的标题,并显示每个节中的每一行。如果只想显示SessionId,则每节显示一行。您可以通过查看节中的第一个元素来获取sessionId
这根本不需要您更改fetchedResultsController—您只需要更改显示信息的方式。根据您的UI/UX,您可能会发现拥有两个表视图更容易,切换会显示和隐藏它们。或者,在控制器中设置BOOL并在切换模式时调用
[tableview reloadData]
可能更容易。您可以随时更改提取请求,只需确保删除缓存即可。可能存在重复的
sessionID: 0000-0000-0000-0000-0001, ...
sessionID: 0000-0000-0000-0000-0001, ...
sessionID: 0000-0000-0000-0000-0002, ...
sessionID: 0000-0000-0000-0000-0002, ...
sessionID: 0000-0000-0000-0000-0002, ...
[fetchRequest setEntity:entity];
[fetchRequest setReturnsDistinctResults:YES];
[fetchRequest setPropertiesToFetch:@[@"session_id"]];