谢谢大家的快速回复。
jtbandes的评论让我发现了问题。
musical_note_instance正在接口中声明为CCSprite * musical_note_instance,并注意MusicalNote * musical_note_instance,因为它的超级代码是CCSprite,但是正在显示有关语义的警告。现在我修改了将CCSprite更改为MusicalNote并且不再显示警告。
PS:我在这里回答是因为我是新用户,并且在8小时内无法回答我的问题。
我是cocoa和iPhone游戏编程的新手,所以我在我的项目中使用了cocos2d-iphone框架。
一切都很顺利,但我有一个问题,我可以找出原因。我创建了这个类:
#import <Foundation/Foundation.h>
#import "cocos2d.h"
#import "SimpleAudioEngine.h"
@interface MusicalNote : CCSprite {
NSString *note;
NSString *soundFile;
unsigned int noteValue;
}
+ (id) init;
+ (id) initWithFile:(NSString *)file;
+ (void) description;
- (void) playNote;
@property (nonatomic) unsigned int noteValue;
@property (nonatomic, retain)NSString *note;
@property (nonatomic, retain)NSString *soundFile;
@end
但是当我尝试 [musical_note_instance playNote]; 或 [musical_note_instance setSoundFile:@“sound.mp3”]; 我在XCode 中收到此警告'CCSprite'可能无法响应'playNote'我只是想不通为什么= /
答案 0 :(得分:1)
我猜你有一个地方你有一个变量类型的CCSprite你现在也要发送你的新playNote消息了。但是playNote只存在于你的新类MusicalNote的实例中。您是否已将变量类型更改为“MusicalNote *”?