On 9/3/20 12:15 PM, Markus Spoettl via Cocoa-dev wrote:
On macOS 11 this produces the following exception:

------------------------------
-[NSKeyedUnarchiver _validateDecodeCollectionAllowedClassesRequirementsWithClasses:]: This method only supports decoding non-nested collections. Please remove the following or use '-decodeObjectOfClasses: forKey:' instead:
     (
         NSDictionary (0x7fff88714520) 
[/System/Library/Frameworks/CoreFoundation.framework]
     )
------------------------------

It Was All Our Fault (tm), surprisingly :)

Turns out we have an NSCoder extension that helps with secure coding and 
declares

- (NSArray *)decodeArrayOfObjectsOfClasses:(NSSet <Class> *)classes 
forKey:(NSString *)key

Apple must have seen it because the exact same method is not in NSCoder directly. Apparently the collision wasn't resolved to call the new instance method, but something else (probably -decodeObjectForKey:).

Changing the extension's method name(s) to something more unique fixed the 
problem.

Regards
Markus
--
__________________________________________
Markus Spoettl
_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

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:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to