您好,我是核心数据的新手。我在重新加载我的子对象或位于第二个 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/