Re: NSUserDefaults synchronization in Foundation tools
Re: NSUserDefaults synchronization in Foundation tools
- Subject: Re: NSUserDefaults synchronization in Foundation tools
- From: Ken Ferry <email@hidden>
- Date: Tue, 8 Sep 2009 17:56:55 -0700
Hi Jens,
On Tue, Sep 8, 2009 at 4:24 PM, Jens Alfke <email@hidden> wrote:
>
> On Sep 8, 2009, at 4:13 PM, Sidney San Martín wrote:
>
> "Because this method is automatically invoked at periodic intervals, use
>> this method only if you cannot wait for the automatic synchronization (for
>> example, if your application is about to exit)"
>>
>
> To my knowledge that's always been incorrect — the only time NSUserDefaults
> synchronizes automatically is upon quit. The app can change a default, stay
> running for days, then crash; and the default won't have been written to
> disk so the change is lost. So I've always ended up calling -synchronize
> myself, either immediately or using a perform-after-delay.
No, it does actually behave as documented. In 10.6 I know it syncs after 15
seconds.
I cannot find the bug where it was added, but it's been true since at least
10.5.
Will NSUserDefaults ever synchronize itself itself in an app without an
> NSApplication? If so, when and how? If not, the docs need to be ammended.
Yes, it's NSTimer based. Your app must be running the run loop for the
synchronization to occur.
-Ken
_______________________________________________
Cocoa-dev mailing list (email@hidden)
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:
This email sent to email@hidden