不同实体上的 FetchedResultsController sectionKeyPath

FetchedResultsController sectionKeyPath on different entity

是否可以定义不同实体上的 sectionKeyPath?

我有一组用户,它们是 fetchedResultsController 显示的实体。我想根据它们是否有未读消息将它们分为 2 个部分。

所以我需要使用 user.lastMessageId 获取消息,然后使用 message.viewed 作为 sectionKeyPath。

原则上,您可以使用不同实体的属性作为 FRC 的 sectionNameKeyPath,但 FRC 下的实体与具有相关属性的实体之间必须存在一对一关系.

你提到了一个 lastMessageID 属性,这意味着你正在为最后一条消息存储一个唯一的 ID。将其替换为与 Message 实体的一对一关系 lastMessage,并使用相关的 Message 对象而不是其唯一 ID 填充它。然后您可以使用 lastMessage.viewed 作为您的 sectionNameKeyPath。请注意,您还需要添加排序描述符以按相同的键对 FRC 实体进行排序。