在 viewController 之间转换时使用静态变量是存储变量的好习惯吗?
Is use of static variables good practice for storing variables when transitioning between viewControllers?
我正在使用 spriteKit
创建游戏。在 landscape
模式下,显示游戏板,切换到 portrait
时显示信息屏幕。现在,回到 landscape
模式,游戏板重新初始化,重置切换设备方向之前所做的所有更改。
我通过将 data
存储在 class
和 static
variables
中解决了这个问题。它有效,但似乎这种方法可能存在一些问题。由于 static
variables
几乎在整个应用程序中都可以访问,并且它们始终包含一个值,因此在我看来它们接近于 global
variables
。我知道它们不一样,但在后台保持永久 variables
听起来会占用大量内存,从而耗尽性能。
我说得对还是没问题?如果这是一个不好的方法,在viewControllers
之间切换时我应该如何保存状态?
根据我的阅读,static
变量是否为 "OK" 有点明确,所以我希望对此有一个明确的答案(如果有的话)。
优势
可以进行元对象操作(比如在创建对象之前验证某些东西,记录对象的数量)
可以执行与对象无关的操作,但您仍然希望将它们绑定到 Class。
缺点
常用于静态变量,有时会因不同对象访问而出现问题。
与对象无关,因此不反映纯粹的面向对象
方法。
需要同步以避免多个更新冲突
对象和线程。它确实提到了为什么有时使用
静态函数和变量可能不好
查看以下文章了解更多信息,
我正在使用 spriteKit
创建游戏。在 landscape
模式下,显示游戏板,切换到 portrait
时显示信息屏幕。现在,回到 landscape
模式,游戏板重新初始化,重置切换设备方向之前所做的所有更改。
我通过将 data
存储在 class
和 static
variables
中解决了这个问题。它有效,但似乎这种方法可能存在一些问题。由于 static
variables
几乎在整个应用程序中都可以访问,并且它们始终包含一个值,因此在我看来它们接近于 global
variables
。我知道它们不一样,但在后台保持永久 variables
听起来会占用大量内存,从而耗尽性能。
我说得对还是没问题?如果这是一个不好的方法,在viewControllers
之间切换时我应该如何保存状态?
根据我的阅读,static
变量是否为 "OK" 有点明确,所以我希望对此有一个明确的答案(如果有的话)。
优势
可以进行元对象操作(比如在创建对象之前验证某些东西,记录对象的数量)
可以执行与对象无关的操作,但您仍然希望将它们绑定到 Class。
缺点
常用于静态变量,有时会因不同对象访问而出现问题。
与对象无关,因此不反映纯粹的面向对象 方法。
需要同步以避免多个更新冲突 对象和线程。它确实提到了为什么有时使用 静态函数和变量可能不好
查看以下文章了解更多信息,