CCSprite может не отвечать на «Метод» - PullRequest
0 голосов
/ 27 июня 2011

EDIT

Спасибо всем за быстрый ответ.

Комментарий jtbandes заставил меня найти проблему.

мюзикл_note_instance был объявлен в интерфейсе как CCSprite * мюзикл_note_instance и примечание MusicalNote * мюзикл_note_instance, так как его супер был CCSprite, код работал, но отображались предупреждения о семантике. Теперь я исправил изменение CCSprite на MusicalNote, и больше не отображаются предупреждения.

PS: я отвечаю здесь, потому что я новый пользователь и не могу ответить на мой вопрос меньше, чем за 8 часов.


Я новичок в программировании игр для какао и 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

но когда я пытаюсь сделать [music_note_instance playNote]; или [music_note_instance setSoundFile: @ "sound.mp3"]; я получаю это предупреждение в XCode 'CCSprite 'может не отвечать на' playNote ' Я просто не могу понять, почему = /

1 Ответ

1 голос
/ 27 июня 2011

Я предполагаю, что в каком-то месте у вас есть переменная с типом CCSprite, которую вы хотели бы теперь отправить и вашему новому сообщению playNote. Но playNote существует только на экземплярах вашего нового класса MusicalNote. Вы изменили тип вашей переменной на "MusicalNote *"?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...