核心数据:NSFetchedResultsController 与对象有关系
Core data: NSFetchedResultsController with objects are in a relationship
我有两个实体 CIDMPost
和 CIDMUser
。 CIDMPost 与名为 invitees
的 CIDMUser 有 one-to-many
关系。
现在我有一个 CIDMPost
的实例让我们说 postObject
从那里我可以通过写 postObject.invitees
轻松获得被邀请者,这将 return NSSet
.
现在我的要求是 NSFetchedResultsController
的受邀者 (postObject.invitees) 以 Group
的风格出现在 UITableView
中。还需要满足以下条件。
- 按 invitationStatus(CIDMUser 的属性)分组
- 通过邀请状态 ASC 订购
Declaration:
我尝试了一些方法来满足我的要求,但崩溃了,原因是 Invalid to many relationship
。要知道我发布的这个崩溃的解决方案'a question' an hour ago. But after few conversation with Daij-Djan 我已经知道我尝试的整个过程是错误的。
只需在您的获取结果控制器中获取用户,并通过带有谓词的邀请将排序描述符应用到所需的过滤器中。在创建抓取结果控制器时使用状态字段作为 sectionNameKeyPath
参数。
NSPredicate(format: "%@ in invitations", post)
其中 post
是要向其显示被邀请者的 post 对象,invitations
是与 post 的反向对多关系邀请用户。
(请注意,我假设一个用户可以被邀请到多个 post,这似乎合乎逻辑。在您的问题陈述中,您提到了一对多关系,它因此在我看来应该是多对多)。
我有两个实体 CIDMPost
和 CIDMUser
。 CIDMPost 与名为 invitees
的 CIDMUser 有 one-to-many
关系。
现在我有一个 CIDMPost
的实例让我们说 postObject
从那里我可以通过写 postObject.invitees
轻松获得被邀请者,这将 return NSSet
.
现在我的要求是 NSFetchedResultsController
的受邀者 (postObject.invitees) 以 Group
的风格出现在 UITableView
中。还需要满足以下条件。
- 按 invitationStatus(CIDMUser 的属性)分组
- 通过邀请状态 ASC 订购
Declaration:
我尝试了一些方法来满足我的要求,但崩溃了,原因是 Invalid to many relationship
。要知道我发布的这个崩溃的解决方案'a question' an hour ago. But after few conversation with Daij-Djan 我已经知道我尝试的整个过程是错误的。
只需在您的获取结果控制器中获取用户,并通过带有谓词的邀请将排序描述符应用到所需的过滤器中。在创建抓取结果控制器时使用状态字段作为 sectionNameKeyPath
参数。
NSPredicate(format: "%@ in invitations", post)
其中 post
是要向其显示被邀请者的 post 对象,invitations
是与 post 的反向对多关系邀请用户。
(请注意,我假设一个用户可以被邀请到多个 post,这似乎合乎逻辑。在您的问题陈述中,您提到了一对多关系,它因此在我看来应该是多对多)。