gpt4 book ai didi

iPhone coredata 获取请求,关系和部分的基础知识

转载 作者:行者123 更新时间:2023-12-03 20:26:56 25 4
gpt4 key购买 nike

我有一个简单的问题 - 我有两个实体 - List 和 ListItem - 并且它们之间建立了一对多关系,一切都很好。

当我尝试执行 fetchrequest 时,我的问题出现了,该请求将返回按列表项的属性划分的列表项。我无法直接在 listItem 对象上执行 fetchrequest,因为无法说“Where List = 'xxxxx'”,所以我有类似以下内容:


- (NSFetchedResultsController *)getListItems {
// Init a fetch request
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"List" inManagedObjectContext:self.managedObjectContext];
[fetchRequest setEntity:entity];

NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"listItem.productName" ascending:YES selector:nil];
NSArray *descriptors = [NSArray arrayWithObject:sortDescriptor];
[fetchRequest setSortDescriptors:descriptors];


// Init the fetched results controller
NSError *error;
self.globalFetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:self.managedObjectContext sectionNameKeyPath:@"listItem.productName" cacheName:@"listItems"];
self.globalFetchedResultsController.delegate = self;
if (![[self globalFetchedResultsController] performFetch:&error]) NSLog(@"Error: %@", [error localizedDescription]);

[fetchRequest release];
[sortDescriptor release];

return self.globalFetchedResultsController;
}

现在,这个错误是因为它说我不能在排序描述符中使用一对多关系 - 但它也要求我有一个排序描述符,所以我不确定正确的方法这。任何帮助都会很棒。

最佳答案

如果您想获取并分段 ListItems,那么您应该使用“ListItem”作为获取实体。

在这种情况下,有一种说法是“获取所有 List = 'xxxxx' 的 ListItem 对象”,它称为谓词(NSPredicate)。

尝试这样的操作(其中“list”是 ListItem 与 List 的关系的名称):

NSPredicate *pred = [NSPredicate predicateWithFormat:@"list == %@", listObject];
[fetchRequest setPredicate:pred];

另外,请参阅Predicate Programming Guide .

关于iPhone coredata 获取请求,关系和部分的基础知识,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1749316/

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