相关疑难解决方法(0)

Objective-C:覆盖超类getter并尝试访问ivar时的编译器错误

我正在开发构建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是可见的,可以从子类访问?

properties objective-c instance-variables ios

15
推荐指数
1
解决办法
5751
查看次数

标签 统计

instance-variables ×1

ios ×1

objective-c ×1

properties ×1