我第一次使用UserDefaults
来为iOS开源项目做贡献。但是,在我需要为键设置值的每个类中,我发现自己键入相同的代码行:let defaults = UserDefaults.standard
。有没有更好的方法来实现UserDefaults
,这样我就不必在每个需要它的类中继续定义这个变量?换句话说,在使用UserDefaults时是否存在“最佳实践”?
答案 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
的任何类中,您都可以调用此方法。希望这有帮助!