如何使用关系值获取核心数据的不同值?

时间:2013-06-28 17:02:21

标签: ios core-data nsfetchedresultscontroller

我正在尝试获取所有不同的身份值(联系人有很多身份)。我也试图从联系模型中获取contact.sectionIndex。我正在尝试下面的代码,并为每条记录获取“为部分名称键路径'返回nil值'Contact.sectionIndex'”。

NSFetchRequest *req = NSFetchRequestMake(@"Identity", managedObjectContext);
req.fetchBatchSize = 20;
req.sortDescriptors = NSSortDescriptors1(@"sortname", YES);
[req setResultType:NSDictionaryResultType];
[req setReturnsDistinctResults:YES];
[req setPropertiesToFetch:@[@"identityID", @"sortname"]];


// Create & return the fetchedResultsController.
fetchedResultsController = [[NSFetchedResultsController alloc]
                            initWithFetchRequest:fetchRequest
                            managedObjectContext:managedObjectContext
                            sectionNameKeyPath:@"contact.sectionIndex" cacheName:nil];
[VenmoUtilities performFetch:fetchedResultsController critical:NO];

2 个答案:

答案 0 :(得分:1)

用作sectionNameKeyPath的属性必须包含在propertiesToFetch

[req setPropertiesToFetch:@[@"identityID", @"sortname", @"contact.sectionIndex"]];

答案 1 :(得分:0)

从Apple文档中,您可以看到您可能会对请求提出过多要求。

讨论

属性描述可以表示属性,一对一关系或表达式。属性或关系描述的名称必须与获取请求的实体上的描述名称匹配。