我正在使用spriteKit
创建游戏。在landscape
模式下,将显示游戏板,切换到portrait
时会显示信息屏幕。现在,返回到landscape
模式,游戏板将重新初始化,重置在切换设备方向之前所做的所有更改。
我已经通过将data
存储在带有static
variables
的class
中来解决此问题。它有效,但这种方法似乎可能存在一些问题。由于几乎整个应用程序中都可以访问static
variables
,并且它们始终包含一个值,因此在我看来,它们接近global
variables
。我知道它们不一样,但是在后台保留永久variables
听起来像是内存沉重,从而消耗性能。
我说的对还是没事?如果这是一个糟糕的方法,在viewControllers
之间切换时我应该怎么做才能保存状态?
从我所读到的内容来看,static
变量是否"OK"有点明确,所以我希望有一个明确的答案(如果有的话(。
优点
-
可以做元对象操作(比如在创建对象之前验证某物,保持对象数量的计数(
-
可以执行与对象无关的操作,但您仍然希望它们绑定到 Class。
弊
通常用于静态变量有时会导致由于不同对象的访问而导致问题。
不绑定到对象,因此不反映纯面向对象 方法。
需要同步以避免多次更新冲突 对象和线程。它确实提到了为什么有时使用 静态函数和变量可能不好
有关详细信息,请查看以下文章,
https://r.je/static-methods-bad-practice 希望对你有帮助