任何人都可以向我解释这个问题(我很困惑)
我有一个按钮我点击按钮来调用方法(flowCalculaton) 我设置一个本地float var为一个var分配一个NSTextField来获取其内容,然后重新调整该值,
ALl构建并运行正常,但我得到的值为answerText(标签) 但如果我改变浮动setVolume = 233;例如,我在标签中显示233
- (IBAction)calculate:(id)sender {
AppControls *cal =[[AppControls alloc]init];
float callMethod = [cal flowCalculation] ;
[answerText setFloatValue: callMethod ];
[cal release];
}
- (float) flowCalculation {
float setVolume = [volumeText floatValue];
return setVolume ;
}
如果我这样做(flowCalculation)与volumeText的相同调用给了我NSTextField值。
- (IBAction)calculate:(id)sender {
//AppControls *cal =[[AppControls alloc]init];
//float callMethod = [cal flowCalculation] ;
[answerText setFloatValue: [volumeText floatValue] ];
// [cal release];
}
为什么不将[volumeText floatValue]分配给方法中的var?
帮助表示赞赏。
答案 0 :(得分:0)
什么是AppControls
,为什么要分配新实例来进行计算?
volumeText
中的AppControls
是什么,以及新分配的AppControls
实例中的值是什么?
我只是猜测,但也许你打算这样做:
- (IBAction)calculate:(id)sender
{
float callMethod = [self flowCalculation] ;
[answerText setFloatValue: callMethod ];
}
编辑回复评论:
我猜测AppControls
是你的视图控制器。因此,您有一个实例显示给用户,并且用户正在编辑AppControls
特定实例中文本字段的内容。当您致电AppControls *cal =[[AppControls alloc]init];
时,您正在创建一个全新的,空的AppControls
实例,用户甚至无法看到。因此,当您尝试获取该新实例中的文本字段的值时,它们是空的,因为这不是用户正在编辑的实例。