Swift NSUserDefaults上的属性观察员

Swift NSUserDefaults上的属性观察员,swift,Swift,我有一组按钮,当按下两个按钮时,会触发NSUserDefault,但我需要ViewController中的观察者来执行一些动画 这在swift中可能吗?我可以使用DidSet:和WillSet:吗?或者还有其他选择吗 最简单的方法是在计算变量上结合用户默认值和动画,如下所示: var defaultName:String{ get { var returnValue: NSString? = NSUserDefaults.standardUserDefaults().o

我有一组按钮,当按下两个按钮时,会触发NSUserDefault,但我需要ViewController中的观察者来执行一些动画


这在swift中可能吗?我可以使用DidSet:和WillSet:吗?或者还有其他选择吗

最简单的方法是在计算变量上结合用户默认值和动画,如下所示:

var defaultName:String{
    get {

        var returnValue: NSString? = NSUserDefaults.standardUserDefaults().objectForKey("defaultName") as? NSString

        if returnValue == nil //Check for first run of app
        {
            returnValue = ""
        }
        return returnValue!
    }

    set (newValue) {
        NSUserDefaults.standardUserDefaults().setObject(newValue, forKey: "defaultName")
        NSUserDefaults.standardUserDefaults().synchronize()
        // start your animations here
    }
}

下一步单击按钮,只需更改defaultName值,即可存储新值并触发动画。最简单的方法是将用户默认值和动画组合到计算变量上,如下所示:

var defaultName:String{
    get {

        var returnValue: NSString? = NSUserDefaults.standardUserDefaults().objectForKey("defaultName") as? NSString

        if returnValue == nil //Check for first run of app
        {
            returnValue = ""
        }
        return returnValue!
    }

    set (newValue) {
        NSUserDefaults.standardUserDefaults().setObject(newValue, forKey: "defaultName")
        NSUserDefaults.standardUserDefaults().synchronize()
        // start your animations here
    }
}

下一步单击按钮,只需更改defaultName值,即可存储新值并触发动画

您是否简单地尝试了DidSet?您是否简单地尝试了DidSet?您好,谢谢,我在一个VC上有按钮,在另一个VC上有动画和数据连接。。。这是否仍然可行?如果使用数据作为计算属性(如我上面所述),则可以在每个视图控制器中放置变量,如果其中一个变量更改其值,则所有其他变量都将自动更新。如果您使用这些存储属性的值来更新视图,那么只需将所有这些更新放在viewVillAppear方法上。谢谢,我在一个VC上有按钮,在另一个VC上有动画和数据连接。。。这是否仍然可行?如果使用数据作为计算属性(如我上面所述),则可以在每个视图控制器中放置变量,如果其中一个变量更改其值,则所有其他变量都将自动更新。若您使用这些存储属性的值来更新视图,那个么只需将所有这些更新放在viewVillAppear方法上即可