[PyObjC] NSUserDefaults
In PyObjC, using NSUserDefaults is incredibly effortless. Here is an example taken from my Movie Drop project.
# -*- coding: utf-8 -*- class MovieDropAppDelegate(NSObject): _defaultSettings = { 'copyText': u'© ' + NSFullUserName() + ", " + str(NSCalendarDate.calendarDate().yearOfCommonEra()), 'frontColor':NSArchiver.archivedDataWithRootObject_(NSColor.blackColor().colorWithAlphaComponent_(.9)), 'backColor':NSArchiver.archivedDataWithRootObject_(NSColor.whiteColor().colorWithAlphaComponent_(.5)), 'fontName':"Helvetica", 'fontSize':11.0, 'movieFolder': NSHomeDirectory() 'settingsText':"320x240px (zoom:100% rotate:0.0 offset:0x0px)", } def loadAllSettngs(self): ud = NSUserDefaults.standardUserDefaults() ud.registerDefaults_(self._defaultSettings) for k in self._defaultSettings.keys(): v = ud.objectForKey_(k) if isinstance(v, NSData): v = NSUnarchiver.unarchiveObjectWithData_(v) self.setValue_forKey_(v, k) def saveAllSettngs(self): ud = NSUserDefaults.standardUserDefaults() for k in self._defaultSettings.keys(): v = self.valueForKey_(k) if isinstance(v, NSColor): v = NSArchiver.archivedDataWithRootObject_(v) ud.setObject_forKey_(v, k) def resetAllSettings(self): for k in self._defaultSettings.keys(): v = self._defaultSettings[k] if isinstance(v, NSData): v = NSUnarchiver.unarchiveObjectWithData_(v) self.setValue_forKey_(v, k)