2010-09-13 2 views
1

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

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

В моем файле .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 теста]: непризнанный селектор направил к экземпляру 0x4d0e710» **

это говорит о том, что [тест CwheelElement] не реализовано, но это ... любые идеи, что происходит?

ответ

1

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

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

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

self.image = [UIImage imageNamed:pieceGraphicFilename]; 
+0

Благодарим за возвращение и публикацию вашего решения. Я делал то же самое с одним из моих подклассов. –

1

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

- (id) initWithType:(int) iType andPosition:(int) iPosition onRow:(int) iRow;