ios - 使用全局变量在 ViewController 之间传递数据的缺点是什么?
问题描述
我是 Swift 新手,来自 C 和 Java 背景。
我正在尝试将一个结构(称为“播放器”)对象从一个视图控制器传递到另一个视图控制器,并且据我所知,一种正确的做法是首先在目标 VC 中定义它,例如:
class TargetVC: UIViewController {
var playerVar: Player!
}
然后在源 VC 中的准备函数中分配它:
if let targetVC = segue.destination as? TargetVC
{
targetVC.playerVar = myPlayer
}
但我考虑过简单地使用全局变量将Player
对象传递给目标视图控制器,方法如下:
var myPlayer = Player() // Global Variable
class SourceVC: UIViewController {
}
然后在目标 VC 中达到它:
class TargetVC: UIViewController {
myPlayer.name = // Stuff
}
这种方法会在运行时引起任何问题还是有任何缺点?如果是,它们是什么?
提前致谢。
解决方案
顾名思义,一个缺点是,所有东西都可以访问全局变量,即使是没有理由看到,更不用说修改该数据的东西。
推荐阅读
- binary - 生成 jpg 文件的许多不同哈希值,而对图片的更改最少
- node.js - 尝试为 selenium-node-firefox 创建 dockerfile
- powerbi - 在使用 power BI 比较当前月份和上个月的值时,添加具有值的列作为新条目
- java - Java Bean 验证。不同类的名称最大大小不同
- python - 寻找 K. K-Means 聚类的最优值
- javascript - 如何在video.js中将控制按钮定位在控制栏之外
- google-places-api - Google 仅将 API 自动填充限制为企业名称
- c# - 设置 Webview2 标头或 cookie
- python - while 循环未在更改测试条件时终止
- amazon-web-services - AWS EventBridge Cron 时区 - 在特定本地时间触发