Re: Another user defaults question
Re: Another user defaults question
- Subject: Re: Another user defaults question
- From: Bill Bumgarner <email@hidden>
- Date: Thu, 24 Aug 2006 16:19:30 -0700
On Aug 24, 2006, at 4:11 PM, Ivan Kourtev wrote:
After extensive reading of archives and documentation I am still
having a hard time getting the workings of NSUserDefaults. So here
are a couple questions:
1. I can successfully "register" defaults using a dictionary of keys
and values and - [NSUserDefaults registerDefaults]. But nothing
seems to be written to a file in the ~/Library/Preferences folder?
Is that normal? Does it mean I have to - [NSUserDefaults
registerDefaults] every time the application starts?
That is correct. Registration defaults provide a "baseline" set of
default values. Any defaults modified and stored in ~/Library/
Preferences or passed on the command line will override the
registration defaults.
2. It seems that via - [NSUserDefaults registerDefaults] one can
only register defaults that are (or have been converted to) objects
because only objects can be inserted into the dictionary that is a
required argument. But the NSUSerDefaults class also has things
such as setBool/Float/Integer: forKey: Isn't that a contradiction
-- to be able or not be able to register certain types of default
values directly depending on which method you use?
You would use the NSValue class (Subclass, typically) to encapsulate
the values.
However, there is a much better way to do this:
Add a "RegistrationDefaults" key to your application's Info.plist.
Make the value a dictionary that contains the set of registration
defaults that you want to use. I.e. an entry like (you'll need to
convert this to the XML form of plists):
{
... info plist content here ....
RegistrationDefaults = {
NeutralColor = "whiteColor";
PositiveThreshold = 10.0;
DisplayInMenuBar = NO;
IndexNumberFormat = "###,##0.00";
};
}
And then, somewhere very early in your app's execution:
[[NSUserDefaults standardUserDefaults] registerDefaults:
[[[NSBundle mainBundle] infoDictionary] objectForKey:
@"RegistrationDefaults"]];
b.bum
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Cocoa-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden