gpt4 book ai didi

ios:NSFetchRequest 和过滤

转载 作者:行者123 更新时间:2023-11-29 05:00:22 25 4
gpt4 key购买 nike

我有一个 NSFetchRequest(在 NSFetchedResultsController 中执行)用于以下数据:

Person (one-to-many) Encounter

Encounter 有一个 int 字段“type”。在我的 tableView 中,我想显示:

Person A - Encounter of type 1
Person A - Encounter of type 2
Person B - Encounter of type 1

等等。也就是说,对于一个人,我只想要每种类型的一次遭遇。有没有办法在核心数据查询中做到这一点?我可以使用代码来过滤 NSFetchRequest 的结果,但随后我无法使用 NSFetchedResultsController。

[编辑]

这是我当前正在尝试的代码。结果是一个人多次遭遇相同类型的遭遇。

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
// entity
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Encounter" inManagedObjectContext:self.managedObjectContext];
[fetchRequest setEntity:entity];

// return distinct
NSDictionary *entityProperties = [entity propertiesByName];
[fetchRequest setPropertiesToFetch:[NSArray arrayWithObjects:
[entityProperties objectForKey:@"person"],
[entityProperties objectForKey:@"type"],
nil]];
[fetchRequest setReturnsDistinctResults:YES];

[fetchRequest setResultType:NSDictionaryResultType];

NSError *error;
NSArray *fetchedObjects = [self.managedObjectContext executeFetchRequest:fetchRequest error:&error];

for (NSDictionary *d in fetchedObjects) {
NSLog(@"NSDictionary = %@", d);
}

[fetchRequest release];

最佳答案

我假设您只想为每种类型的遭遇返回一条记录,即使一个人具有多个给定类型。您可以通过相应地调整 NSFetchRequest 来实现此目的:

[fetchRequest setReturnsDistinctValues:YES];

关于ios:NSFetchRequest 和过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7128014/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com