如何使项目中的所有文件都可以访问和更改的变量

How to make a variable that is accessible and changeable by all files in project

假设我想要一个包含用户名的字符串,并且我希望能够访问 and/or 在所有 swift 文件中更改该变量。例如,我有一个用于用户个人资料页面和设置页面的视图控制器文件——我希望能够访问和更改这些文件中的任何一个变量。我尝试制作一个 class 文件,但是每当我在我的视图控制器中创建那个 class 的实例时,我都能够访问那个 class 中变量的默认值,但是我无法永久更改其值。

所以本质上,我希望能够声明一个全局变量,它可以被我项目中的所有文件访问,并且可以被我项目中的所有文件更改。

没关系,我决定使用用户默认值来保存我的变量,然后我可以从项目中的任何文件中检索它们。

例如:

//Declare this inside your class
let defaults = UserDefaults.standard
//Take any variable like this
var name: String = "Bill"
//and save them to UserDefaults
defaults.set(name, forKey: "name")

然后您可以在另一个 class(或在同一个 class 中访问该变量,只需在 "name" 之前删除 "let")通过调用:

if let username = defaults.string(forKey: "name"){
let name = username

变量可以通过调用 defaults.set() 函数时提供的唯一键访问。您可以按照最初声明的方式更改该值。