为什么从UIApplicationDelegate获取ManagedObjectContext的Apple文档很糟糕?

use*_*719 5 core-data nsmanagedobjectcontext ios

只是好奇为什么ManagedObjectContexts在创建时应该传递给UIViewControllers,而不是仅仅从UIApplicationDelegate中获取它们?

文档说这会使你的应用程序更加严格,但我没有看到何时使用哪种模式的细微差别.

谢谢!

Cal*_*leb 7

想象一下,我要求你做一些任务,比如画一个房间.如果我只是告诉你"去画一个房间",你需要问我很多问题,比如:

  • 哪个房间?
  • 油漆在哪里?
  • 刷子在哪里?
  • 我应该用一块布料吗?

简而言之,如果没有我的帮助,您将无法完成任务.如果你每次都要依赖我,你就不会是一个非常灵活的画家.处理这个问题的一种方法是让我在一开始就给你所需的所有东西.我不会说"去画一个房间",而是"请用这桶油漆和这个刷子涂抹房间号码348,不要用拖布打扰." 现在,您已经拥有了所需的一切,而且您可以在没有我的帮助的情况下正确地工作.你是一个更灵活的工作者,因为你不再依赖我.

同样的事情适用于视图控制器(通常是对象); 最好是给他们所需要的东西,而不是让他们依赖于像app代理这样的特定对象.这不仅适用于托管对象上下文,也适用于他们完成工作所需的任何信息.