在视图控制器之间转换时,使用静态变量是存储变量的好做法吗?



我正在使用spriteKit创建游戏。在landscape模式下,将显示游戏板,切换到portrait时会显示信息屏幕。现在,返回到landscape模式,游戏板将重新初始化,重置在切换设备方向之前所做的所有更改。

我已经通过将data存储在带有staticvariablesclass中来解决此问题。它有效,但这种方法似乎可能存在一些问题。由于几乎整个应用程序中都可以访问staticvariables,并且它们始终包含一个值,因此在我看来,它们接近globalvariables。我知道它们不一样,但是在后台保留永久variables听起来像是内存沉重,从而消耗性能。

我说的对还是没事?如果这是一个糟糕的方法,在viewControllers之间切换时我应该怎么做才能保存状态?

从我所读到的内容来看,static变量是否"OK"有点明确,所以我希望有一个明确的答案(如果有的话(。

优点

  1. 可以做元对象操作(比如在创建对象之前验证某物,保持对象数量的计数(

  2. 可以执行与对象无关的操作,但您仍然希望它们绑定到 Class。

通常用于静态变量有时会导致由于不同对象的访问而导致问题。

  1. 绑定到对象,因此不反映纯面向对象 方法。

  2. 需要同步以避免多次更新冲突 对象和线程。它确实提到了为什么有时使用 静态函数和变量可能不好

有关详细信息,请查看以下文章,

https://r.je/static-methods-bad-practice 希望对你有帮助

相关内容

  • 没有找到相关文章

最新更新