[SOLVED] Re: Linking a specific controller instance to user defaults
[SOLVED] Re: Linking a specific controller instance to user defaults
- Subject: [SOLVED] Re: Linking a specific controller instance to user defaults
- From: Graham Cox <email@hidden>
- Date: Thu, 6 May 2010 11:41:05 +1000
Hi Quincey. That occurred to me too but seems a bit hackish.
I solved it by asking the delegate for the settings name root. The delegate is a distinct class in this case, so it can return a unique string, and the delegate can be set in IB and so is available at -awakeFromNib time. Works well in this case though if the delegate weren't a unique instance it would simply move the problem elsewhere - though I guess you could just keep going up through a chain of delegates until someone could return an unambiguous answer...
--Graham
On 06/05/2010, at 3:22 AM, Quincey Morris wrote:
> On May 5, 2010, at 05:42, Graham Cox wrote:
>
>> The problem should be obvious - how to ensure that each instance of the controller can use a specific unique key in the user defaults. Creating a unique key is easy, but at load time how to calculate the exact same key for the specific instance is not. I thought of adding a 'settings name' property that was used to prefix the key but there's no way to set it earlier than -awakeFromNib time from some external object that "knows" which instance it is using. Ideally the settings name could be set for the instance in IB, but since this is a generic NSObject subclass I can't do that without making an IB plugin just to set it, which seems like major overkill.
>>
>> Is there another way to set the settings name just in time?
>
> The first thing that sprang to mind was to use two different subclasses of the controller. Then either test the class name, or have the subclasses return a unique name or key (that's built into the subclass so you don't have to set it in IB).
_______________________________________________
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