NSUserDefaults(Controller)

Discussion in 'Mac Programming' started by davidmirv, Apr 13, 2013.

  1. macrumors newbie

    Joined:
    Apr 9, 2013
    #1
    I am not understanding when I change 2 values an NSTextField and a NSTextView via
    Code:
    _stopwatchLabel setStringValue:@"00:00:00"];
    [taskDescription setString:@""];
    
    which both have their values bound to Userdefaultscontroller , when I trigger that code and quit the app the new values aren't saved..and the old values are restored..
    I did some tinkering around and subscribed to NSUserDefaultsDidChangeNotification and noticed that when I set those values its not even triggering the notification? Have also tried syncronize on the nsuserdefaults within nsuserdefaultscotnroller to no avail (setAppliesImediately is true so a save: would not help)

    Do I have to also update NSUserDefaults manually when setting values manually??

    can anyone help me out? Not sure why I have this seemingly strange NSUserDefaults behavior

    thanks
     
  2. macrumors newbie

    Joined:
    Jun 15, 2007
    #2
    I use [NSUserDefaults standardUserDefaults] a lot, and add/change stuff manually. You have to synchronize after you manually add/change things so that your changes are "committed"...

    e.g. in my case:
    Code:
    [[NSUserDefaults standardUserDefaults] synchronize];
    So it's probably similar in your case.
     
  3. macrumors 68030

    Catfish_Man

    Joined:
    Sep 13, 2001
    Location:
    Portland, OR
    #3
    You absolutely should not need to call -synchronize during normal usage of NSUserDefaults on any recent version of Mac OS X. If you've run across a case where you do need to, please file a bug at bugreport.apple.com
     
  4. macrumors newbie

    Joined:
    Jun 15, 2007
    #4
    Sorry, i'm speaking from an iOS developer perspective, I haven't had the chance to try out Mac OS development and was unaware of this distinction. Thanks for pointing that out.
     

Share This Page