我正在开发构建iOS 6应用程序.
我有一个类TDBeam,它继承自超类TDWeapon.
超类TDWeapon在TDWeapon.h文件中声明了@property:
@interface TDWeapon : UIView
@property (nonatomic) int damage;
@end
Run Code Online (Sandbox Code Playgroud)
我没有明确地@synthesize属性,因为我让Xcode自动这样做.
在子类TDBeam中,我覆盖了TDBeam.m文件中的getter:
#import "TDBeam.h"
@implementation TDBeam
- (int)damage {
return _damage;
}
@end
Run Code Online (Sandbox Code Playgroud)
Xcode按预期自动完成getter方法名称.但是当我尝试引用_damage实例变量(继承自超类)时,我收到编译器错误:
Use of undeclared identifier '_damage'
Run Code Online (Sandbox Code Playgroud)
我在这做错了什么?我已经尝试显式添加@synthesize,并更改_damage ivar的名称,但编译器不会"看到"它或来自超类的任何其他ivars.我认为ivars是可见的,可以从子类访问?