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

  1. davidmirv macrumors newbie

    Apr 9, 2013
    I am not understanding when I change 2 values an NSTextField and a NSTextView via
    _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

  2. onejed1 macrumors newbie

    Jun 15, 2007
    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:
    [[NSUserDefaults standardUserDefaults] synchronize];
    So it's probably similar in your case.
  3. Catfish_Man macrumors 68030


    Sep 13, 2001
    Portland, OR
    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. onejed1 macrumors newbie

    Jun 15, 2007
    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