我有一个全局变量,需要在我的ViewController之间共享。
在Objective-C中,我可以定义静态变量,但是找不到在Swift中定义全局变量的方法。
您知道这样做的方法吗?
来自官方的Swift编程指南:
全局变量是在任何函数,方法,闭包或类型上下文之外定义的变量。全局常数和变量总是延迟计算的。
您可以在任何文件中定义它,也可以在module
任何位置访问它。因此,您可以在任何范围之外的文件中的任何位置定义它。不需要static
,所有全局变量都是延迟计算的。
var yourVariable = "someString"
您可以从当前模块中的任何位置访问它。
但是,应避免这种情况,因为全局变量不利于应用程序状态,并且主要是错误的原因。
在Swift中,您可以将它们封装在其中struct
并可以在任何地方访问。您也可以在Swift中定义静态变量或常量。封装在struct
struct MyVariables {
static var yourVariable = "someString"
}
您可以在任何类或任何地方使用此变量
let string = MyVariables.yourVariable
println("Global variable:\(string)")
//Changing value of it
MyVariables.yourVariable = "anotherString"
问题内容: 在我的android应用程序中,我需要放置可变成员id的位置。问题是,它是从在线API获取的,我需要找到一种存储/检索它的方法 我尝试将其放在自定义类中,但是问题是,如果我取消活动,它将丢失,我还知道有一种方法可以扩展应用程序。 所以我想知道存储全局变量的最佳方法是什么? 我必须实现: 将变量保存在onSaveState上 将其保存在sharepref 手动保存 手动检索 谢谢 更新:
问题内容: 我试图设置一个全局变量。就我而言,只是一个布尔标志,用于指示是否首次显示视图: 呈现视图后,我想将此标志设置为false: 然后检查它: 因此,我想创建一个全局变量。在哪里以及如何?我试过了: 在我的视图控制器领域 在我的AppDelegate.swift文件中的方法中 在班上 没运气。我收到一条错误消息 (注意:我意识到,在这个问题中,我背叛了我对Swift中如何处理范围的无知。请原
我得到一个编译错误的代码: 我想让“match”成为一个全局变量。 我的编译错误是: “内部类TestingProgramm中的静态声明非法。匹配修饰符”static“只允许在常量变量声明中使用 在初始化期间使用静态非final变量。“ 我不知道这个错误是什么意思,也不知道如何修复它。
问题内容: 如何创建一个Java类实例,以确保整个JVM进程只能使用一次?然后,在该JVM上运行的每个应用程序都应该能够使用该单例实例。 问题答案: 实际上,您可以实现这种单例。在注释中向您描述的问题是可能有多个s 加载类。然后,每个都可以定义一个相同名称的类,该类将错误地假定为唯一。 但是,您可以通过实现单例的访问器来避免这种情况,该访问器显式依赖于检查特定名称的类,该类又包含您的单例。这样,您
在JavaScript中,我可以这样做: 然后在另一个文件中: 它将定义
问题内容: 我想将一个脚本加载到redis中,该脚本将导出将来执行的脚本将依赖的函数,但是尝试定义全局函数失败,对于全局变量也是如此: 如何定义全局函数和变量? 问题答案: 查看文件scripting.c中的源代码 的doc字符串表示意图是将常见错误通知脚本作者(不使用)。 看来这不是安全功能,所以我们有两个解决方案: 可以删除此保护: 或使用: