我有两个使用相同数据的标签栏项目(视图),获取数据的最佳解决方案是什么?
在每个视图控制器中对相同的数据进行两次获取请求。
在 appDelegate 中发出一个 fetch 请求,并使用 sharedApplication 来获取 appDelegate 中的数据。如果数据发生变化,我可以使用 KVO 和通知来通知视图。
如果我必须选择,我显然会选择 2,但我想确保我做的事情是正确的。
谁能告诉我这是否是正确的方法?
我有两个使用相同数据的标签栏项目(视图),获取数据的最佳解决方案是什么?
在每个视图控制器中对相同的数据进行两次获取请求。
在 appDelegate 中发出一个 fetch 请求,并使用 sharedApplication 来获取 appDelegate 中的数据。如果数据发生变化,我可以使用 KVO 和通知来通知视图。
如果我必须选择,我显然会选择 2,但我想确保我做的事情是正确的。
谁能告诉我这是否是正确的方法?
我不确定你为什么要在你的应用程序委托中粘贴与数据获取相关的东西,除非有充分的理由在那里这样做。(我真的想不出一个)。让您的视图控制器通过 KVO 观察应用程序委托对我来说似乎是一种不好的代码味道。
我更喜欢创建数据模型类(有时设计为单例)并在我的视图控制器中使用 KVO 或通知。它使设计更简洁。
这是其他人关于该主题的博客文章。
我建议您使用类似单例类的东西。在bit-101有一个很好的例子。这个例子的好处是它很容易扩展到更复杂的情况,例如更多的标签......