Re: -[NSKeyedUnarchiver decodeObjectForKey:]: cannot decode object of class (NSDictionaryController)
Re: -[NSKeyedUnarchiver decodeObjectForKey:]: cannot decode object of class (NSDictionaryController)
- Subject: Re: -[NSKeyedUnarchiver decodeObjectForKey:]: cannot decode object of class (NSDictionaryController)
- From: Chris Parker <email@hidden>
- Date: Mon, 26 Apr 2010 16:34:43 -0700
Hi Jack,
On 26 Apr 2010, at 4:23 PM, Jack Repenning wrote:
> One of my testers (and, naturally, none of the test systems I can get my hands on) reports this Console error when performing a certain operation:
>
> -[NSKeyedUnarchiver decodeObjectForKey:]: cannot decode object of class (NSDictionaryController)
>
> I think I sorta know what some of it means, but I'm not sure about it all.
>
> I think it means NSKeyedUnarchiver had trouble. I think NSKeyedUnarchiver is probably involved in instantiating my nib. The nib involved in the failing operation does, indeed, have an NSDictionaryController. I guess that the fact that the message mentions that (relatively unusual) class means NSKeyedUnarchiver found the nib, and made at least a bit of sense of it all.
>
> But, does this mean "I found your NSDictionaryController, but something's wrong with it and I can't decode it"? That is, something busted inside my NSDC?
>
> Or, does it mean "I know I'm supposed to be looking for an NSDC, but dang if I can find the bugger"?
It's this one. Well, it means "Hey, I found one, but I don't know how to unpack it."
> That is, is there a platform version consideration here? The tester with the troubles runs Tiger; I build on Snow Leopard using SDK 10.4u and deployment target 10.4. I haven't heard from any other Tiger testers, troubled or not, so perhaps this is an SL->Tiger versionitis issue? But not-so-very-long-ago builds, from this same configuration, work for this tester, so that seems ruled out. Is Tiger simply not expected to grok Snow Leopard NSDCs?
Tiger is (as you note) 10.4/10.4u; NSDictionaryController is tagged as being available in 10.5 (Leopard) and later.
So Tiger's unarchiver doesn't know what to do with an archived NSDictionaryController. There's a setting in Interface Builder which should warn you about this kind of thing - if you're setting the deployment target for the nib correctly then IB should warn you that you're encoding something that 10.4 knows nothing about.
.chris
--
Chris Parker
iPhone (formerly Cocoa) Frameworks
Apple Inc.
_______________________________________________
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