以下代码有问题(在iOS 7.1中使用xcode 5)

Player *aPlayer = theDungeon.thePlayer;
int r = aPlayer.lampRed;
int g = aPlayer.lampGreen;
int b = aPlayer.lampBlue;
Player *aPlayer = theDungeon.thePlayer;

返回一个有效的Player对象,该对象具有上面显示的每个属性,并将鼠标悬停在此变量上并将其扩展,我可以看到lampRed等。
int r = aPlayer.lampRed;

在这一行,我得到了错误的访问错误。

这是属性:
  @property int lampRed;

知道为什么吗?

最佳答案

未初始化对象或对象已释放时,将显示EXC_BAD_ACCESS。

因此,我认为您没有正确初始化该对象,并且正在尝试访问他的属性。

您必须实例化该对象:

Player *aPlayer = [[Player alloc]init];

那么你就可以访问他的 property

用:
@property(nonatomic, assign) int lampRed;

代替
@property int lampRed;

另一方面,这非常重要,您必须使用.m文件中的属性:
@synthesize lampRed;

有了它,您将获得吸气剂和吸气剂,否则就没有。

关于ios - EXC_BAD_ACCESS和 setter/getter ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22329480/

10-12 06:00