2

离屏时 Nil out NSFetchedResultsController Delegate 是最佳做法吗?

例如,我有一个由 NSFRC 管理的列表。当我点击一个列表项时,我会得到一个详细视图。我可能会更改详细视图上的某些内容,从而将其从列表中删除。或者,如果我继续在详细视图中滑动,我可以让它加载更多数据(这将随后更新父表视图 NSFRC)。

当我将它归零时,我会出现奇怪的行为。似乎在任何地方都找不到这方面的建议。

4

2 回答 2

0

我前段时间发布了一个类似的问题,寻找这种“最佳实践”的技术解释。然而我什么也没找到。

我想大部分建议的“最佳实践”都来自较旧的 iOS 版本,在viewDidUnload出现内存警告的情况下可以调用该版本,但现在情况不再如此。

根据我的经验,我发现只有在后台更新和合并的情况下才强制辞职。所有其他情况取决于您的应用程序逻辑。

例如,当您将 CoreData 实体与后续 UIView 嵌套时,如下所示:

child1 (UITableView)-->child2 (Detail)-->child3 --> (UITableView)-->ecc...

然后,对 child3 的更改将使子 1 表视图对该更改做出反应,因此您可能希望通过辞去委托或内省更改并在委托方法中返回 YES 或 NO 来避免对远程获取的控制器的不必要调用。重新获取查询可能更简单、更有效。

保持相同的结构,假设您通过合并两个上下文对最新的 UITableView 进行了大规模更新,如果您为所有控制器使用了相同的上下文,那么即使不需要,它们也会尝试更新其视图。

所以对于像 UITableView-->UIView (detail) 这样的简单案例,我可以看到保持委托分配没有问题,所有其他情况,我会做一点分析。

于 2013-09-25T08:17:34.230 回答
0

没有理由在这里否定你的 NSFRC。事实上,这是让你的 tableView 由 NSFRC 管理的主要便利,当你在其他视图中更改数据时,它会适当地更新自己。这也按顺序应用数据更改,而不必在返回列表时重新获取所有数据。

于 2013-09-11T00:16:39.120 回答