两个iPhone子视图之间的数据交换

时间:2009-11-19 10:03:27

标签: iphone cocoa-design-patterns

一直在研究如何将数据从一个子视图发送到另一个子视图。该应用程序有几个视图,其中一个是实时设置视图。设置的更改应该影响其他视图中的内容。

NSUserDefaults 似乎很受欢迎,但我不希望持久数据也不想自动保存到数据库/文件中。看起来像潜在的减速,我想避免。

第二个流行的事情是将对一些常见顶级对象的引用传递到每个子视图中。只是还没有找到任何教程,这将向我详细说明如何做到这一点......很可能很容易,不需要教程 - 在你搞清楚一次之后!如果你能指出正确的方向(URL),我将不胜感激!

问题:我正在考虑使用一个“单一对象”来存储“全局数据”,随时随地访问它。这可能有什么问题?如果我在例如appDelegate.m它应该在任何人试图访问它之前存在,对吗?

我正在查看this示例代码。

2 个答案:

答案 0 :(得分:1)

我建议使用代理和/或通知。

不是在app委托中创建新的单例,而是在app委托中添加必要的数据(或者更好的是对数据的引用),并让视图引用app delegate。

您还可以设置notifications,以便您的观看次数可以跟踪他们显示的数据的变化。

答案 1 :(得分:0)

单例的优点在于,当您第一次通过某些[singletonClass sharedInstance]访问它时会自动创建它。所以你不需要在启动时“创建”它。如果是需要从任何视图访问的全局数据,则单例可能是正确的方法。