iOS NSUserDefaults Watching the change of values for a single key

后端 未结 4 486
花落未央
花落未央 2020-12-15 21:52

I have the following code aiming to catch the event of a NSUserDefaults value changing for a particular key.

 [[NSUserDefaults standardUserDefaults] addObse         


        
4条回答
  •  暗喜
    暗喜 (楼主)
    2020-12-15 22:05

    Swift Version:

    func setUserDefaultsListener(){
        NSUserDefaults.standardUserDefaults().addObserver(self, forKeyPath: "keyPath", options: NSKeyValueObservingOptions.New, context: nil)
    }
    
    override func observeValueForKeyPath(keyPath: String?, ofObject object: AnyObject?, change: [String : AnyObject]?, context: UnsafeMutablePointer) {
        if keyPath == "keyPath" {
            //Do something
        }
    }
    
    deinit {
        NSUserDefaults.standardUserDefaults().removeObserver(self, forKeyPath: "keyPath")
    }
    

提交回复
热议问题