gpt4 book ai didi

ios - 经常访问 NSUserDefaults/UserDefaults 可以吗?

转载 作者:搜寻专家 更新时间:2023-11-01 05:48:25 25 4
gpt4 key购买 nike

我有一个登录 View Controller ,用户可以在其中输入他们的首选项,比如他是否想要激活某些 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")
}
}
}

所以每当我想设置其中任何一个时,我只需编写如下内容:

Preferences.likesSpaghetti = false

现在,我的问题是:我可以在每次用户轻按开/关开关时设置这些变量,还是应该将首选项表示为局部变量然后只设置:

Preferences.likesSpaghetti = spaghettiSwitch.isOn

当用户 segue 离开 loginViewController 时? UserDefault 的每次访问都是即时且快速的吗?或者它是滞后的,应该仁慈地使用?

关闭此问题后编辑: 所以我学会了不要过早优化,在几十个元素的范围内可能就可以了。所以我应该没事。每次用户修改任何内容时,我都会进行更新,以便我的代码更易于阅读和维护。

谢谢大家!

最佳答案

您的代码很好。在您真正遇到问题之前,不要担心此类优化。相信 UserDefaults 的实现很巧妙(因为它确实如此)。在 UserDefaults 中设置像 Bool 这样简单的东西并没有什么“滞后”。

您还希望查看我与此问题相关的另一个答案:When and why should you use NSUserDefaults's synchronize() method?

关于ios - 经常访问 NSUserDefaults/UserDefaults 可以吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48756117/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com