在 class 内初始化变量与不在 class 内初始化变量有什么区别??? - swift
Whats the difference between initializing a variable within a class VS without??? - swift
这是我的问题,我有一个初始化一次的变量,这样我就不必在每次要使用该变量时都调用数据库。我应该如何构建它?示例 1 或 2?将函数和变量放入 class 与不放入 class 有什么区别?
示例 1(无 class):
import UIKit
var username = ""
func callToDatbase () {
// I run my code to set the username value equal to stored username value within the database
//Ex: username = database.username
}
---------------------------------------------------------------------------------------------------------
//Then when I want to call it in another view controller I would just say:
usernameLabel.text = username
示例 2(class):
import UIKit
class Initializers {
var username = ""
func callToDatbase () {
// I run my code to set the username value equal to stored username value within the database
//Ex: self.username = database.username
}
}
---------------------------------------------------------------------------------------------------------
//Then when I want to call it in another view controller I would just say:
usernameLabel.text = Initializers().username
当您在 class 之外初始化变量时,它存储在全局范围内。 swift 中的范围由大括号定义,因此您可以将 class 的外部视为大括号包围的整个项目。当您在 class 中定义变量时,只有当您将其实例化为对象时,它才会从 class 中可用。您可能想阅读有关继承的内容,以了解您还可以使用 classes.
中的变量做什么
TLDR:外部变量将对整个代码可用,而 class 内的变量只能在 class 或通过实例化对象将其作为 属性 访问。
示例代码:
class Example {
var name = "Antoni"
}
print(name) // Will throw error
let example = Example() // Create an instance of the class
print(example.name) // Prints as expected
最好将变量放在某种 instantiable/destructible 结构中,例如 class 以帮助 swift 进行内存管理。在程序退出之前,全局定义的变量不会从内存中移除。如果您需要存储静态变量,请改用 struct。
这是我的问题,我有一个初始化一次的变量,这样我就不必在每次要使用该变量时都调用数据库。我应该如何构建它?示例 1 或 2?将函数和变量放入 class 与不放入 class 有什么区别?
示例 1(无 class):
import UIKit
var username = ""
func callToDatbase () {
// I run my code to set the username value equal to stored username value within the database
//Ex: username = database.username
}
---------------------------------------------------------------------------------------------------------
//Then when I want to call it in another view controller I would just say:
usernameLabel.text = username
示例 2(class):
import UIKit
class Initializers {
var username = ""
func callToDatbase () {
// I run my code to set the username value equal to stored username value within the database
//Ex: self.username = database.username
}
}
---------------------------------------------------------------------------------------------------------
//Then when I want to call it in another view controller I would just say:
usernameLabel.text = Initializers().username
当您在 class 之外初始化变量时,它存储在全局范围内。 swift 中的范围由大括号定义,因此您可以将 class 的外部视为大括号包围的整个项目。当您在 class 中定义变量时,只有当您将其实例化为对象时,它才会从 class 中可用。您可能想阅读有关继承的内容,以了解您还可以使用 classes.
中的变量做什么TLDR:外部变量将对整个代码可用,而 class 内的变量只能在 class 或通过实例化对象将其作为 属性 访问。
示例代码:
class Example {
var name = "Antoni"
}
print(name) // Will throw error
let example = Example() // Create an instance of the class
print(example.name) // Prints as expected
最好将变量放在某种 instantiable/destructible 结构中,例如 class 以帮助 swift 进行内存管理。在程序退出之前,全局定义的变量不会从内存中移除。如果您需要存储静态变量,请改用 struct。