【问题标题】:How do I access the right child entites when I select a parent?选择父实体时如何访问正确的子实体?
【发布时间】:2023-03-19 17:52:01
【问题描述】:

这是我认为我已经解决了自己的问题的情况之一,但是,作为 Cocoa 的新手(以及一般的编程),我希望有人检查我是否正确!

我最初的问题如下:我有一个简单的 CoreData 程序,两个实体之间存在一对多关系:“类别”(父)和“清单”(子)。点击一个类别会打开一个带有清单的新视图。问题是,如果我点击一个类别,我会得到一个包含所有类别的所有清单的大列表 - 无论我点击哪个类别,这个列表都是一样的。

我的解决方案是使用@property 和谓词。当我设置 Checklists 视图控制器(在根视图控制器的 TableView:DidSelectRowAtIndexPath 中)时,我执行了以下操作:

Category *category = (Category *)[__fetchedResultsController objectAtIndexPath:indexPath];

detailViewController.category = category;

然后在 Checklist View Controller 的 fetchedResultsController 方法中我做了以下操作:

NSPredicate *requestPredicate = [NSPredicate predicateWithFormat:@"category.name = %@", self.category.name];
[fetchRequest setPredicate:requestPredicate];

这似乎奏效了,但我只是想检查一下我是否以正确的方式处理了这件事。谢谢!

-

编辑 - 这是我的核心数据模型的屏幕截图:

【问题讨论】:

  • 您能否发布您的 coredata 数据模型的屏幕截图?

标签: iphone cocoa-touch core-data


【解决方案1】:

是的,没关系。 您还可以使用 NSSortDescriptor 获取排序后的数组:

NSSortDescriptor *checkListName = [[NSSortDescriptor allo] initWithKey@"name" ascending:YES] autorelease];

NSArray *sortedDescArray = [NSArray arrayWithObjects: checkListName, nil];

[fetchRequest setSortDescriptors: sortedDescArray];

一切顺利。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-09-23
    • 1970-01-01
    • 2021-12-20
    • 2021-06-14
    • 1970-01-01
    相关资源
    最近更新 更多