5

好的,所以我的数据模型中有两个实体(比如说 entityA 和 entityB),这两个实体彼此之间存在一对多关系。

我已经设置了一个 NSFetchedResultsController 来获取一堆 entityA。现在我试图让 tableview 的部分名称成为 entityB 的标题。

sectionNameKeyPath:@"entityB.title"

现在这会导致一个问题,从该关系返回的部分名称似乎是 ({title1}) 或 ({title1,title2...titleN}) 显然取决于涉及多少不同的 entityB。这在表格视图中看起来不太好,并且没有按照我的意愿对对象进行分组。

我想要的是每个 entityB 标题的一个部分,entityA 出现在每个部分下,如有必要,可以在多个部分下。我不知道我应该如何实现这一点,是否需要更新谓词以使实体多次出现,或者我是否需要更新节和标题函数以在控制器循环时进行一些处理对象。

任何帮助表示赞赏:)

谢谢

4

1 回答 1

5

你会得到它,因为调用 @"entityB.title" 将返回一个数组|标题集。这就是您所看到的,因为它正在转换为:

NSSet *titles = [myEntityA valueForKeyPath@"entityB.title"];

要解决此问题,您需要反转您的 NSFetchedResultsController 以便您通过EntityB 对象获取 EntityA 对象。那么你的 sectionKeyPath (和你的主要排序)将只反对@“title”。

于 2010-04-19T21:25:39.750 回答