user3200622
user3200622

Reputation: 31

Cocos2d v3 error: unrecognized selector sent to instance

I create sample game with cocos 2 . Mysprite.h:

#import <Foundation/Foundation.h>
#import "cocos2d.h"

typedef NS_ENUM(NSInteger, SpriteColor) {
    Color_Nil,
    Color_Red,
    Color_Yellow,
    Color_Violet,
    Color_Green,
    Color_Turquoise
};

@interface MySprite : CCSprite
@property  int row;
@property int column;
@property  SpriteColor spriteColor;

-(void )spriteWithColor:(SpriteColor) c Row:(int)ro Column:(int)col;
-(void)setRow:(int)ro AndColumn:(int)col;
-(BOOL)touchInSprite:(CGPoint) point;
-(id)init;
-(void)touchAnimation;
@end

Mysprite.m:

#import "MySprite.h"


@implementation MySprite
@synthesize spriteColor=_spriteColor;
@synthesize row=_row;
@synthesize column=_column;
-(void )spriteWithColor:(SpriteColor) c Row:(int)ro Column:(int)col{
    _spriteColor=c;
    [self setRow:ro AndColumn:col];
}

-(void)setRow:(int)ro AndColumn:(int)col{
    _row=ro;
    _column=col;
}
-(BOOL)touchInSprite:(CGPoint) point{
    if (CGRectContainsPoint(self.boundingBox, point)) {
        return YES;
    }
    return NO;
}
-(void)touchAnimation{
    id scale =[CCActionScaleTo actionWithDuration:2 scale:2] ;
    [self runAction:scale];

}
-(void)removeAnimation{

}
-(void)fallAnimation{

}
@end

Method to init sprite:

 MySprite *sp =[CCSprite spriteWith`ImageNamed:[NSString stringWithFormat:@"t%i.png",color]];`
  [sp spriteWithColor:color Row:row Column:column];

And it alway show error: 2014-02-24 15:14:20.637 Bee[768:a0b] * Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[CCSprite spriteWithColor:Row:Column:]: unrecognized selector sent to instance 0x97da5a0'.

Please let me know what i do wrong and how to fix it.

Thanks all.

Upvotes: 0

Views: 482

Answers (1)

Guru
Guru

Reputation: 22042

Your Mistake: You are creating object of CCSprite and assigning it to MySprite. Then you called methods in MySprite class through object of CCSprite. This leads in crash.

Do like this:

MySprite *sp =[MySprite spriteWithImageNamed:[NSString stringWithFormat:@"t%i.png",color]];
[sp spriteWithColor:color Row:row Column:column];

Upvotes: 2

Related Questions