I have made a test Project to understand resetting UserDefaults.

A label’s value is bound to the shared UserDefaults in the UI, and works as 
expected when the Defaults are updated

@IBAction  fun changeMeaningOfLife………………...
let meaning = Int(arc4random() % 99)
NSUserDefaults.standardUserDefaults().setInteger(meaning, forKey: "TestKey")


Now, to reset to the default value, the code below does work, but the UI is not 
immediately updated.  i.e. a restart of the app is needed.


@IBAction func resetToDefault(sender: AnyObject) {
        let bundleIdentifier = NSBundle.mainBundle().bundleIdentifier
        let mol = NSUserDefaults.standardUserDefaults().stringForKey("TestKey")
        
NSUserDefaults.standardUserDefaults().removePersistentDomainForName(bundleIdentifier!)
     }


If I add the line of code…… (—>>>>) below



@IBAction func resetToDefault(sender…..
        ………………..
     let mol = NSUserDefaults.standardUserDefaults().stringForKey("TestKey")
      ———>>>>>  NSUserDefaults.standardUserDefaults().setInteger(42, forKey: 
"TestKey")


The change is immediately reflected in the UI.

 Could anyone help me understand why the bindings seem to miss the changes if 
only "removePersistentDomainForName(bundleIdentifier!)” is called?

Thanks
_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to