Xcode 4.5 warns about sending Class pointer to parameter of type id<NSCopying> #15

MSch opened this Issue Jun 17, 2012 · 2 comments

3 participants



static void RegisterCustomSubclass(Class subclass, Class superclass)
    [gCustomSubclassMap setObject: subclass forKey: superclass];
    [gCustomSubclasses addObject: subclass];

Can this warning be ignored?


It may be worth filing a bug about this with Apple. Classes do conform to NSCopying and in fact the docs explicitly call out use as a dictionary keys as a reason for this:


In any case, casting it to id or id<NSCopying> should shut it up.


I had the same problem and spoke to some engineers at WWDC, but didn't get a clear answer. Class is a subclass from NSObject, and NSObject has a private static method called copyWithZone, so everything will work. They recommended using NSStringFromClass or, as @mikeash noted, just casing the problem away with id.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment