2011-08-26 112 views
1

谁能解释这个给我请(我是这样的困惑)方法调用和返回

我有一个按钮,我点击按钮来调用一个方法(flowCalculaton) 我设置当地浮动VAR分配的NSTextField到VAR获得然后将其内容重新调整值,

所有构建并运行良好,但我得到的值为0到answerText(标签) 但如果我改变浮动setVolume = 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值显示233。

- (IBAction)calculate:(id)sender { 
    //AppControls *cal =[[AppControls alloc]init]; 
    //float callMethod = [cal flowCalculation] ; 
    [answerText setFloatValue: [volumeText floatValue] ]; 
    // [cal release]; 
} 

为什么不将[volumeText floatValue]赋值给方法中的var?

帮助赞赏。

+0

删除C#和java标签 –

+0

如果你甚至不知道你使用的是什么语言,只要用一堆错误的语言名称来标记它,你应该还没有编程。 – BoltClock

+0

非常抱歉,我对这个网站不熟悉 – avo42

回答

0

什么是AppControls以及为什么要分配一个新实例来进行计算? AppControls中的volumeText是什么,在新分配的AppControls实例中它的值是什么?
我只是猜测,但也许你的意思是这样做:在回复

- (IBAction)calculate:(id)sender 
{ 
    float callMethod = [self flowCalculation] ; 
    [answerText setFloatValue: callMethod ]; 
} 

编辑以评论:
我猜AppControls是您的视图控制器。因此,您有一个正在向用户显示的实例,用户正在编辑该特定实例AppControls中的文本字段的内容。当您拨打AppControls *cal =[[AppControls alloc]init];时,您正在创建一个全新的,空的AppControls实例,用户甚至无法看到。因此,当您尝试获取新实例中文本字段的值时,它们为空,因为这不是用户正在编辑的实例。

+0

谢谢你这正是我应该做的,以从方法中获得正确的值。所以在我打电话给对象的情况下,为什么这个方法不会做同样的事情?appriciated – avo42

+0

@ avo42在答案中看到我的编辑。 – filipe

+0

我明白了,谢谢你抽出时间帮助我... – avo42