getter的EXC_BAD_ACCESS错误

时间:2014-07-05 22:08:41

标签: ios objective-c exc-bad-access

加载我的辅助视图时遇到此错误(并尝试从模态视图控制器获取权重变量):

EXC_BAD_ACCESS (code=2, address=0x0)

这是XCode突出显示的行(来自ModalViewController.m):

- (CGFloat)getWeight {
    return *(weight);
}

但问题出在viewDidAppear方法的这行代码中(如果我注释掉它,它可以正常工作)(来自ViewController.m):

-(void)viewDidAppear:(BOOL)animated {
    [_showModalViewButton setTitle:[NSString stringWithFormat:@"%f",[modalViewController     getWeight]] forState:UIControlStateNormal];
}

当上面的代码行在viewDidLoad中时它工作正常,但每次出现辅助视图时我都需要刷新UIButton的标题

(我希望这是一个简单的修复,但我对iOS开发很新)

2 个答案:

答案 0 :(得分:0)

您收到此错误是因为您尝试访问不存在的变量(因此地址为0x0)。通过_weight访问getter中的属性,这是指ivar。

答案 1 :(得分:0)

您问题的最可能原因是您宣布weight的类型为CGFloat *,而不仅仅是CGFloat

CGFloat *的任何引用更改为CGFloat

然后将您的getWeight方法更改为:

return weight;