我正在研究在iOS应用中处理数据的最有效和最安全的方式。
我使用过单身人士,但在阅读了一些文章后我得出的结论并不是处理数据的最佳方式,单例数据本质上是全局变量。
我的应用数据存储在plist中,控制器(DataManager)处理从plist文件到存储在DataManager类中的变量的转换。
还有哪些其他选项可以将这些数据提供给我的View Controller,后续场景(我使用的是SKSpriteKit)和app delegate?适用于使DataManager成为单例或在整个程序中创建多个DataManager实例。
我考虑过在推拉时在场景之间传递数据,但这会导致高水平的耦合吗?
此致 拜伦
答案 0 :(得分:1)
在ViewControllers之间来回发送数据 - 这个概念可以说是绝对错误的。 - 它不是MVC
由于需要访问的数据似乎不是很大(比如巨大的数组,很多文本,或者保存在数据库中的任何数据),Singleton模式看起来似乎喜欢一个好主意。
NSUserDefaults - 它最初只适用于存储设置或某些静态数据,如用户名,令牌,以及即使在应用程序被杀死后保持数据也很重要。
数据应存储在数据模型中,对这些模型的访问应由特殊类处理,通常使用单例模式。
因此使用该类可能看起来像
[ProgressManager sharedInstance].level = level;
这是你将坚持MVC模式,这是关键的一个。 VC应该访问模型,从中获取数据,并告诉视图究竟要显示什么。
不知道你使用的计时器是什么 - 但是如果它是出于某些全局目的(不仅仅是自上次跳转角色以来的时间),那么拥有一个可以处理这些全局计时器点火的单独类会更好。
否则,计时器最好保持封装在与其一起使用的空间中。