方法调用和返回

时间:2011-08-26 12:38:53

标签: objective-c

任何人都可以向我解释这个问题(我很困惑)

我有一个按钮我点击按钮来调用方法(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?

帮助表示赞赏。

1 个答案:

答案 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实例,用户甚至无法看到。因此,当您尝试获取该新实例中的文本字段的值时,它们是空的,因为这不是用户正在编辑的实例。

相关问题