swift子类化默认值

swift子类化默认值,swift,subclass,nsuserdefaults,Swift,Subclass,Nsuserdefaults,我有一个应用程序,它有几个属性要存储在NSUserDefault中。实际上,我使用它是一种老派的好方法,只是引用了NSUserDefaults.standardDefaults()和设置并获取属性 我最近提出了一个想法,将NSUserDefaults子类化,这样我就可以在那里创建自己的方法,而不必一直编写那些额外的代码行 代码如下所示: class BRUserDefaults: NSUserDefaults { static let defaults = NSUserDefaults

我有一个应用程序,它有几个属性要存储在NSUserDefault中。实际上,我使用它是一种老派的好方法,只是引用了
NSUserDefaults.standardDefaults()
和设置并获取属性

我最近提出了一个想法,将NSUserDefaults子类化,这样我就可以在那里创建自己的方法,而不必一直编写那些额外的代码行

代码如下所示:

class BRUserDefaults: NSUserDefaults {

    static let defaults = NSUserDefaults.standardUserDefaults()

    static func isFirstRun() -> Bool{
        var wasFirstRun = defaults.boolForKey(GlobalConstants.userDefaults.wasFirstRun)

        return !wasFirstRun
    }

    static func setIsFirstRun(){
        defaults.setBool(true, forKey: GlobalConstants.userDefaults.wasFirstRun)
        defaults.synchronize()
    }
}
这是一个好方法吗


非常感谢

语法看起来不错,但是子类化NSUserDefaults没有任何好处。实际上,您正在自己的类中创建一个普通的NSUserDefaults类。如果要向NSUserDefaults类添加额外功能,也可以创建扩展而不是子类。语法看起来不错,但子类化NSUserDefaults没有任何好处。实际上,您正在自己的类中创建一个普通的NSUserDefaults类。如果要向NSUserDefaults类添加额外的功能,还可以创建扩展而不是子类。