在iOS

时间:2018-01-12 03:08:26

标签: ios nsuserdefaults

我第一次使用UserDefaults来为iOS开源项目做贡献。但是,在我需要为键设置值的每个类中,我发现自己键入相同的代码行:let defaults = UserDefaults.standard。有没有更好的方法来实现UserDefaults,这样我就不必在每个需要它的类中继续定义这个变量?换句话说,在使用UserDefaults时是否存在“最佳实践”?

2 个答案:

答案 0 :(得分:1)

如果您愿意,可以直接使用UserDefaults.standard,但如果您要添加/读取许多键,那么最好定义自己的变量并调用变量(就像您正在做的那样)

如果您正在考虑创建一个全局变量,请不要这样做,每次调用UserDefaults.standard时,最佳做法就是您正在做的事情。您可能会考虑不使用UserDefaults在类之间移动值,理想情况下它应仅用于持久性,但这需要重构您的应用程序。

答案 1 :(得分:1)

您可以扩展一些最常用的类,或者创建一个单例来处理这些重复的行。例如,将NSObject扩展为具有以下方法:

extension NSObject
{
    func save(value: Any, for key: String)
    {
        let defs = UserDefaults.standard
        defs.set(value, forKey: key)
        defs.synchronize()
    }
}

并且,从子类NSObject的任何类中,您都可以调用此方法。希望这有帮助!