在我的iphone应用程序中,我有核心数据到多个关系主题 - >>问题,所以每个主题都包含几个问题,我想出了如何使用NSFetchedResultController在UItableView中显示主题列表,但我不知道如何构建我的FetchedResultController来显示所选主题中的问题。
我试图在互联网上找到类似的教程或示例,但找不到任何东西。
我该怎么做?
非常感谢
答案 0 :(得分:3)
你做 NOT 需要回到NSFetchRequest
来获取关系另一端的对象。只需询问Topic
的问题即可。这将为您提供NSSet
个出现故障的实体。错误的实体会占用非常的小内存,您可以轻松获取其中的1000个内容。
如果您需要对这些内容进行过滤,那么您可以对返回的-filteredSetWithPredicate:
执行NSSet
,但转出磁盘会浪费并且速度很慢。
答案 1 :(得分:2)
您不会使用NSFetchedResultsController。相反,您将在详细视图控制器中定义属性
@property (nonatomic, retain) Topic *topic;
然后,当您创建详细视图控制器时,您将根据didSelectRowForIndexPath中选择的主题设置属性。
然后在您的详细视图中,只需使用核心数据关系(topic.questions)从Topic对象中获取问题
答案 2 :(得分:0)
好的,我发现我需要使用NSPredicate
。现在我正在尝试将它添加到我的fetchedResultController中,如下所示:
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"topic == %@", self.topic];
[fetchRequest setPredicate:predicate];
但收到错误:
'keypath topic not found in entity <NSSQLEntity QuestionItem id=2>'
我该怎么做?
由于
修改强>
知道了!
需要在数据模型中设置双方关系并设置谓词如下:
[NSPredicate predicateWithFormat:@"topic.topicName == %@", self.topic]