Qua*_*ees 1 nsuserdefaults ios swift swiftyuserdefaults
我有一个登录视图控制器,用户可以在其中输入他们的首选项,例如他是否要激活某些UI功能.
我将这些存储为getter和setter直接访问的变量UserDefaults,以下是其中一个示例:
class Preferences {
static var likesSpaghetti : Bool {
set (likesSpaghetti) {
UserDefaults.standard.set(likesSpaghetti, forKey: "likesSpaghetti")
}
get {
return UserDefaults.standard.bool(forKey: "likesSpaghetti")
}
}
}
Run Code Online (Sandbox Code Playgroud)
因此,每当我想要设置其中任何一个时,我只需编写如下内容:
Preferences.likesSpaghetti = false
现在,我的问题是:每次用户轻拂开/关开关时我都可以设置这些变量,还是应该将首选项保持为局部变量,然后才设置:
Preferences.likesSpaghetti = spaghettiSwitch.isOn
当用户离开时loginViewController?每次访问都是UserDefault即时快速的吗?或是它是否滞后,应该仁慈地使用?
关闭这个问题后编辑:所以我学会了不要过早地优化,并且它可能在几十个元素的范围内.所以我应该没事.每次用户修改任何内容时我都会更新,以便我的代码更容易阅读和维护.
感谢大家!
你的代码很好.在实际遇到问题之前,不要担心这种优化.信任UserDefaults是巧妙地实施的(因为它是).关于设置像Boolin 一样简单的东西没有什么"滞后" UserDefaults.
您还希望查看与此问题相关的另一个答案:何时以及为什么要使用NSUserDefaults的synchronize()方法?
| 归档时间: |
|
| 查看次数: |
412 次 |
| 最近记录: |