gpt4 book ai didi

ios - 核心数据 - 如何在第二个 TableView Controller 上重新加载 NSSet(子对象)

转载 作者:行者123 更新时间:2023-11-28 22:16:12 28 4
gpt4 key购买 nike

您好,我是核心数据的新手。我在重新加载我的子对象或位于第二个 TableView 上的 NSSet 对象时遇到困难。

所以我有两个 TableView Controller ,第一个是预算,我可以在其中添加或删除预算。在该预算对象中,它与 Expense 对象具有一对多关系(因此 Expense 是 NSSet)。

当我点击其中一个预算单元格后,它会将我带到 NSSet of Expenses,然后我使用如下所示的 allObjects 方法将 Expenses NSSet 转换为 NSArray:

_expenses = [[_currentBudget expenses]allObjects];

然后我填充了 TableView Controller ,它显示了该预算内可用的所有个人费用。然后我有一个添加 (+) 栏按钮来将费用添加到当前预算中(或调用核心数据给我的预定义方法:-(void)addExpensesObject(NSManagedObject*)object

一切都很好,可以保存。但是....一旦我保存了,我就不知道如何重新加载 NSArray 的费用,因为它不像 fetchedResultsController。 (一旦添加了预算,我就能够在第一个 tablview 上重新加载数据,因为我使用了 NSFetchedResultsControllerDelegate 并实现了更改/更新/插入等方法)。

所以我的问题是,如何重新加载这些 NSArray 对象集?我试图在 viewdidappear [[self tableview]reloadData] 中添加,但由于某种原因它不起作用。但是当我返回第一个 tableview(预算)并返回费用时。 .. 它重新加载。

非常感谢!

最佳答案

最简单的解决方案可能是在第二个 TableView Controller 也是如此。而不是通过

[[_currentBudget expenses]allObjects]

到第二个 View Controller ,只需传递_currentBudget。在第二个 View 中 Controller ,创建一个获取结果 Controller 在“费用”实体上获取请求并使用像

这样的谓词
[NSPredicate predicateWithFormat:@"budget = %@", self.currentBudget]

关于ios - 核心数据 - 如何在第二个 TableView Controller 上重新加载 NSSet(子对象),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21609028/

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