objective-c从按钮选择器访问类变量

时间:2012-07-19 19:14:30

标签: objective-c

我正在这样的类的init方法中初始化UIButton:

UIButton* upButton=[[UIButton alloc] initWithFrame:CGRectMake(2*stepX, 13*stepY,2*stepX,stepY)];
[upButton setTitle:@"UP" forState:UIControlStateNormal];
[upButton setBackgroundColor:[UIColor blueColor]];
[upButton addTarget:self action:@selector(pressedUp) forControlEvents:UIControlEventTouchUpInside];

在pressedUp方法中,我需要使用该类中的变量(NSInteger *和我的类英雄*)。 所以我在做:

hero*h=self.mainHero;
NSInteger*m=self.map;

但是稍后在代码中我可以很容易地使用英雄类(更改位置等)但它无法使用self.map(数组中的可怕整数而不是0和1)...如何修复它?

1 个答案:

答案 0 :(得分:0)

根据您的上一条评论,问题似乎是由于悬空引用:您创建了一个局部变量lvl1Map[],将其分配给self.map,然后退出初始化程序。此时,lvl1Map[]已消失,但map指向内存中曾经存在的区域。

您可以通过声明lvl1Map static:

来解决此问题
NSInteger lvl1Map[]={...};
[self setMap:lvl1Map];