Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/183.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用全局变量,而不是通过segue将值推送到下一个活动/视图_Java_Android_Ios_Objective C_Swift - Fatal编程技术网

Java 使用全局变量,而不是通过segue将值推送到下一个活动/视图

Java 使用全局变量,而不是通过segue将值推送到下一个活动/视图,java,android,ios,objective-c,swift,Java,Android,Ios,Objective C,Swift,这个问题适用于iOS和Android开发 我一直在使用这两种开发环境,在iOS中有一个标准约定,使用segues通过视图/场景传输值 同样的道理也适用于Android系统,在切换活动时,你会在意图上加上额外的值 我的问题是, 为什么我们不能在Java/Swift/Objective C中创建一个类,该类包含可以在所有类中访问的全局变量。这样,我们可以简单地编辑一个全局变量,在切换视图/活动之后,我们可以再次访问它们 我已经在我的一个应用程序中使用iOS实现了这一点,但我认为没有理由用其他方式实现

这个问题适用于iOS和Android开发

我一直在使用这两种开发环境,在iOS中有一个标准约定,使用segues通过视图/场景传输值

同样的道理也适用于Android系统,在切换活动时,你会在意图上加上额外的值

我的问题是,

为什么我们不能在Java/Swift/Objective C中创建一个类,该类包含可以在所有类中访问的全局变量。这样,我们可以简单地编辑一个全局变量,在切换视图/活动之后,我们可以再次访问它们

我已经在我的一个应用程序中使用iOS实现了这一点,但我认为没有理由用其他方式实现


那么,为什么这不是标准或普遍接受的呢

通常不建议使用全局变量,因为在很多人在同一个应用程序上工作的行业中,使用全局变量会造成很多混乱和逻辑错误,很难调试


因此,建议避免使用全局变量,并在分配给您的模块中使用

尽管全局变量似乎更容易完成某些开发任务,但在可能的情况下,有几个原因应该避免使用全局变量。这不仅适用于android/ios开发,也适用于大多数其他语言(尤其是面向对象语言)


检查此链接:

如果使用全局变量,则应考虑以下情况

  • 它们与始终将其保存在内存中有多大关系
  • 您应该担心并发访问并实现同步
  • 您应该考虑每个这样的全局变量的生存期

  • 内存是移动设备上的常见问题。通过创建可跨“活动/视图控制器”访问的全局变量,您可以保留在每个“活动/视图控制器”中可能不需要的内存中。如果我要创建一个与控制器对应的类层次结构,它可以处理特定数量的视图/活动,那么,我是否可以创建仅由所需视图访问的变量,从而消除内存问题?使用这些类变量听起来更容易控制。在这种情况下,不一定是全局变量。如果我要放弃全局/类变量,我想100%相信。是的,类变量完全可以,只要它们是实例变量。如果正确管理引用,则可以在类之间共享实例变量。但是,静态类变量往往会一直存在。