我是 Swift 新手,有 C 和 Java 背景。
我正在尝试将一个结构(称为“Player”)对象从一个 View Controller 传递到另一个 View Controller ,据我所知,一种正确的方法是首先在目标 VC 中定义它,如下所示:
class TargetVC: UIViewController {
var playerVar: Player!
}
然后在源VC中的prepare函数中分配它:
if let targetVC = segue.destination as? TargetVC
{
targetVC.playerVar = myPlayer
}
但我考虑简单地使用全局变量将 Player
对象传递给目标 View Controller ,方法如下:
var myPlayer = Player() // Global Variable
class SourceVC: UIViewController {
}
然后在目标 VC 中达到它:
class TargetVC: UIViewController {
myPlayer.name = // Stuff
}
这种方法在运行时会导致任何问题吗?或者有什么缺点吗?如果是,它们是什么?
提前致谢。
最佳答案
传递数据
使您能够遵循编程原则来构建良好的类,即使在您的示例中也是如此。在许多情况下,它使类更具可扩展性和可重用性。
全局变量
在获取所需数据方面具有一些优势,但您必须关心引用循环
、内存管理
、句柄线程
、队列
和 block
等
您还可以阅读有关singletones
、static vars
...的内容 - 您可以在其中从类作用域变量中获取一些数据。
关于ios - 使用全局变量在 ViewController 之间传递数据有哪些缺点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55573404/