我希望仅显示核心数据获取请求的唯一结果。目前我从研究中看到,使用NSDictionaryResultType
可以实现这一目标,但我一直在努力使其发挥作用。
我确实尝试使用以下内容,但无法将其正确地集成到我的班级中。我不是100%确定在NSArray *distincResults
后放置未使用的变量:
NSFetchRequest *request = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Routines" inManagedObjectContext:managedObjectContext];
request.entity = entity;
request.propertiesToFetch = [NSArray arrayWithObject:[[entity propertiesByName] objectForKey:@"routinename"]];
request.returnsDistinctResults = YES;
request.resultType = NSDictionaryResultType;
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"routinename" ascending:YES];
[request setSortDescriptors:[NSArray arrayWithObject:sortDescriptor]];
NSError *error = nil;
NSArray *distincResults = [managedObjectContext executeFetchRequest:request error:&error];
// Use the results
有什么建议吗?
答案 0 :(得分:0)
如果您使用NSDictionaryResultType
,则无法使用FRC代理来监视更改。如果可以,你可以走这条路。
一旦你有了一个字典数组(distinctResults
),就把它作为你的表视图的数据数组。因此,例如,在cellForRowAtIndexPath
或configureCell
中,使用
cell.textLabel.text = distinctResults[indexPath.row][@"routinename"];
这是
的缩写形式cell.textLabel.text = [[distinctResults objectAtIndex:indexPath.row]
objectForKey:@"routinename"];