I am converting my Objective-C Cocos2d project into ARC and I am finding some issues when trying to convert a third party class that extends some other classes.
Below is the ARC error message I get:

The static method shown in the issue are defined in the SneakyExtension.h file that extends some other classes (SneakyButton, SneakyButtonSkinnedBase, SneakyJoystick..) in this way (I share only the interface as the code is copyrigthed by Steffen Itterheim):
@interface SneakyButtonSkinnedBase (Extension)
+(id) skinnedButton;
@end
@interface SneakyJoystick (Extension)
+(id) joystickWithRect:(CGRect)rect;
@end
@interface SneakyJoystickSkinnedBase (Extension)
+(id) skinnedJoystick;
@end
You can find the source code here: look at the ShootEmUp03 example in chapter 8.
My only guess is that the Extension keyword is somehow not supported by ARC but I have a feeling that I am wrong because I haven’t found much on google with this as well as neither on Stackoverflow or the “transitioning to ARC” Apple’s iTunes U tutorial.
Any help would be much appreciated.
Import required files. 🙂
My best guess about why it worked is that the compiler is being more particular about correct declarations now than it was. Why that should be the case, I have no idea. In the end, though, it’s the runtime that gets the final vote on what works and, as long as there really is a
joystickWithRectmethod linked into your app, you’re functionally OK even if it should have been a compiler error in the earlier builds — according to some standard.What you’re encountering now doesn’t affect the program’s behavior; it’s just the compiler trying to make sure you’re telling it the right thing.