Методы подкласса игнорируются в Obj-C? - PullRequest
1 голос
/ 13 сентября 2010

У меня путаница из-за ошибки в моем проекте Obj-C.То, что я делаю, довольно просто, и я не понимаю, чего мне здесь не хватает.Я просто создаю очень простой метод в подклассе UIImageView, а затем создаю его экземпляр.Когда я пытаюсь использовать метод из моего экземпляра, компилятор жалуется, что он не реализован (хотя он есть)

Любая помощь будет принята.

В моем файле .h:

@interface CwheelElement : UIImageView { 
int type;
int position;
int row;
float rotation;
}

- (CwheelElement *) initWithType:(int) iType andPosition:(int) iPosition onRow:(int) iRow;
- (void) rotateByRadians:(float) iRadians;

- (void) test;

@property (nonatomic, assign) int type;
@property (nonatomic, assign) int position;
@property (nonatomic, assign) int row;

@end

В моем .m файле:

- (CwheelElement *) initWithType:(int) iType andPosition:(int) iPosition onRow:(int) iRow {
 self = [super init];

 /* …stuff */

 return self;
}

- (void) test {
 NSLog(@"testing");
}

Пытаясь использовать класс:

CwheelElement *iElement = [[CwheelElement alloc] initWithType:row3WheelTypes[i] andPosition:i onRow:3];
   [lowerWheelElements addObject:iElement];

   [iElement test];

Я получаю следующие ошибки:

2010-09-13 02: 13: 08.431 spinnerX [7329: 207] - [тест UIImageView]: нераспознанный селектор отправлен в экземпляр 0x4d0e710 2010-09-13 02: 13: 08.432 spinnerX [7329: 207] Завершение приложения из-за необработанного исключения «NSInvalidArgumentException», причина: '* - [UIImageView test]: нераспознанный селектор, отправленный экземпляру 0x4d0e710' **

В нем говорится, что [Тест CwheelElement] не реализован, но это ... есть идеи, что происходит?

Ответы [ 2 ]

1 голос
/ 13 сентября 2010

Кстати, настоятельно рекомендуется возвращать (id) из инициализатора, чтобы не столкнуться с той же проблемой при создании подклассов.

1 голос
/ 13 сентября 2010

Извинения, я обнаружил в своей инициализаторе следующую строку:

self = [[UIImageView alloc] initWithImage:[UIImage imageNamed:pieceGraphicFilename]];

Я изменил ее на следующую, и проблема больше не возникает:

self.image = [UIImage imageNamed:pieceGraphicFilename];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...