gpt4 book ai didi

ios - 如何从特定的 Core Data 父实体 ID 获取所有到多个项目

转载 作者:行者123 更新时间:2023-12-01 19:10:29 28 4
gpt4 key购买 nike

我对此很陌生,并假设我遗漏了一些非常简单的东西,我已经尝试过这个网站以及我可以搜索的任何地方,但没有找到直接的答案。

我的情况..

  • 我的模型可以有很多健美操实体,当然也可以包含很多集合。
  • 我有一个健美操细节 Controller ,它使用获取请求来提取所有集合数据并显示它。使用下面的代码,我的详细 View 可以正常工作。
  • 问题是,如果我创建并输入另一个健美操细节 View ,我的获取当然会从所有健美操实体中拉出所有 Set 实体,我当然只想拉出我正在与之交互的健美操 ID 的集合。

  • 那么如何在我的获取请求中提取与 1 个健美操 ID 相关的所有集合?
    - (void)fetchSets
    {
    NSFetchRequest *fetchRequest = [NSFetchRequest fetchRequestWithEntityName:@"Set"];
    NSString *cacheName = [@"Set" stringByAppendingString:@"Cache"];

    NSSortDescriptor *sortDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"setNumber" ascending:YES];

    [fetchRequest setSortDescriptors:@[sortDescriptor]];

    self.fetchedResultsController = [[NSFetchedResultsController alloc]initWithFetchRequest:fetchRequest managedObjectContext:self.calisthenic.managedObjectContext sectionNameKeyPath:nil cacheName:cacheName];

    NSError *error;
    if (![self.fetchedResultsController performFetch:&error]) {
    NSLog(@"Fetch failed: %@", error);
    }
    }

    最佳答案

    您可以使用 NSPredicate 根据作为 Calisthenic 的父对象过滤获取请求。

    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"calisthenic == %@", calisthenic]
    [fetchRequest setPredicate:predicate];

    上面的行假设 parent 的属性称为健美操。

    或者,如果您已经为 Calisthenic 和 Sets 创建了模型文件(NSManagedObject 的子类),您可以简单地获取父健美操对象并直接获取集合。
    calisthenic.sets

    在其中返回 NSSet。

    看看以下关于如何生成模型文件的教程: Getting started with Core Data

    关于ios - 如何从特定的 Core Data 父实体 ID 获取所有到多个项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16868084/

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