我目前正在开发我的第一个iPhone应用程序,我想知道共享一个将在每个控制器中使用的对象的最佳方式是什么。
我正在考虑在其他控制器中引用包含所需数据的控制器,并且由于属性而访问这些数据,这是一个好主意还是有更好的方法来做到这一点?
或者我们可以在应用程序的任何地方声明可以访问的任何全局变量(不是const)吗?
谢谢
答案 0 :(得分:4)
从你的问题中不清楚你正在处理什么类型的数据,但我在iphone应用程序中使用的一种方法是包含应用程序状态和状态管理功能的单例对象。
在Cocoa With Love找到关于此类数据的单身人士与应用代表的使用情况有很好的讨论,我同意他在这里所说的话。
例如,在这种情况下,应用程序的用户帐户绑定到Web应用程序,因此在加载时,应用程序将初始化单例对象,当用户登录时,将保留对单例中用户对象的引用,以便用户可以为api调用引用info。
这种方法对我的目的起了相当好的作用,你可以看到如何在Objective-C here中创建一个单例类,并且在apple docs here中有几种方法可以做到这一点提供相同的功能结果。
一旦定义了单件类,就可以在applicationDidFinishLaunching或主控制器的viewDidLoad中初始化它,并初始化您需要管理的全局可访问数据。我强烈建议你阅读我上面链接的Cocoa With Love文章,以考虑管理整个过程。
希望有所帮助。
如果您遇到困难,我可以发布一些示例代码,但可用的单例类示例非常简单易用。
答案 1 :(得分:0)
如果您真的需要它是全局的,您可以将它放在AppDelegate中或创建一个数据管理对象。但我觉得这样做是不赞成的。