Я работаю над созданием приложения iOS 6.
У меня есть класс TDBeam, который наследуется от суперкласса TDWeapon.
Суперкласс TDWeapon объявляет @property в файле TDWeapon.h:
@interface TDWeapon : UIView
@property (nonatomic) int damage;
@end
Я не явно @synthesize свойство, поскольку я позволяю Xcode автоматически делать это.
В подклассе TDBeam я переопределяю getter в файле TDBeam.m:
#import "TDBeam.h"
@implementation TDBeam
- (int)damage {
return _damage;
}
@end
Xcode автоматически завершает имя метода getter, как и ожидалось. Но когда я пытаюсь ссылаться на переменную экземпляра _damage (унаследованную от суперкласса), я получаю ошибку компилятора:
Use of undeclared identifier '_damage'
Что я здесь делаю неправильно? Я попытался явно добавить @synthesize и изменить имя _damage ivar, но компилятор не "видит" его или любые другие ivars из суперкласса. Я думал, что ивары были видны и доступны из подклассов?