我应该将 UserDefaults 声明为变量吗?
Should I declare UserDefaults as a variable or not?
我担心是否应该将 UserDefaults 声明为变量,如以下代码:
模式A
let userDefaults = UserDefaults.standard
if let userDefaults.object(forKey: "isFirstLaunch") {
}
模式B
if let UserDefaults.standard.bool(forKey: "isHardModeEnabled") as Bool {
}
哪种方式最好,两种方式有什么区别吗?
两种方式都是正确的,你可以随意使用它,只是在模式A中会多定义一个变量。
SwiftyUserDefaults Modern Swift API for NSUserDefaults.
这两种都是使用 UserDefaults
的正确方法,这取决于您的要求,比如您可以在哪里使用 Pattern A
和 Pattern B
,如果您想要使用 UserDefaults.standard
ViewController
中的许多地方然后你可以声明
let userDefaults = UserDefaults.standard
在您的方法之外并在您的 UIViewController
class 中的任何地方访问它,或者您可以将其声明为全局的,然后您可以在项目的任何地方使用它。
但如果你没有太多用处,那么你可以直接使用
if let UserDefaults.standard.bool(forKey: "isHardModeEnabled") as Bool {
}
其实两者是一样的
UserDefaults.standard
将 return UserDefaults 的单例实例。
您可以选择任何一种方法以方便使用。
如果需要经常使用userDefaults,可以将UserDefaults.standard
缩短成一个变量。
let userDefaults = UserDefaults.standard
if let defaults.object(forKey: "isFirstLaunch") {
}
我担心是否应该将 UserDefaults 声明为变量,如以下代码:
模式A
let userDefaults = UserDefaults.standard
if let userDefaults.object(forKey: "isFirstLaunch") {
}
模式B
if let UserDefaults.standard.bool(forKey: "isHardModeEnabled") as Bool {
}
哪种方式最好,两种方式有什么区别吗?
两种方式都是正确的,你可以随意使用它,只是在模式A中会多定义一个变量。
SwiftyUserDefaults Modern Swift API for NSUserDefaults.
这两种都是使用 UserDefaults
的正确方法,这取决于您的要求,比如您可以在哪里使用 Pattern A
和 Pattern B
,如果您想要使用 UserDefaults.standard
ViewController
中的许多地方然后你可以声明
let userDefaults = UserDefaults.standard
在您的方法之外并在您的 UIViewController
class 中的任何地方访问它,或者您可以将其声明为全局的,然后您可以在项目的任何地方使用它。
但如果你没有太多用处,那么你可以直接使用
if let UserDefaults.standard.bool(forKey: "isHardModeEnabled") as Bool {
}
其实两者是一样的
UserDefaults.standard
将 return UserDefaults 的单例实例。
您可以选择任何一种方法以方便使用。
如果需要经常使用userDefaults,可以将UserDefaults.standard
缩短成一个变量。
let userDefaults = UserDefaults.standard
if let defaults.object(forKey: "isFirstLaunch") {
}