如何在同一级别的实例方法中调用的实例方法中访问实例变量

时间:2012-06-25 02:40:17

标签: ios cocoa-touch cocoa

我有一个连接到滑块的IBAction实例方法,并在名为datacellR1的文本字段中显示滑块值。下面是代码的副本,后面是一个问题。这两种方法都在View2Controller.m文件的@implementation部分中。

- (IBAction)slider1Change:(id)sender 
{

    float pctVal1 = [slider1 floatValue];  // this works
    [datacellR1 setFloatValue:pctVal1];         

   [View2Controller CalculateUpdatedTotal ]; // This method needs to work with the datacellR1 contents, but I can’t access it.


}



-(void)CalculateUpdatedTotal  
{  

    // -------- do some work with datacellR1 ----
    // This function fails with an error

    float newValue = [datacellR1 floatValue];

    //some other code goes here   

}

slider1Change中的错误是找不到CalculateUpdatedTotal方法。如果我将CalculateUpdatedTotal从实例方法更改为类方法,则错误是在类方法中访问实例变量datacellR1。

关于如何使这项工作的任何建议?

1 个答案:

答案 0 :(得分:3)

如上所述,

CalculateUpdatedTotal也是一种实例方法。因此,要调用它,您应该将消息传递给self,而不是类(View2Controller):

[self CalculateUpdatedTotal];

顺便说一句,在Objective-C中用小写字母开始方法名称是常规的。