0

スライダーに接続された 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 がクラス メソッドでアクセスされるというエラーが発生します。

これを機能させる方法について何か提案はありますか?

4

1 に答える 1

3

CalculateUpdatedTotal、書かれているように、インスタンスメソッドでもあります。したがって、それを呼び出すにselfは、クラス ( View2Controller)ではなく、 にメッセージを渡す必要があります。

[self CalculateUpdatedTotal];

ところで、Objective-C のメソッド名は小文字で始めるのが慣例です。

于 2012-06-25T02:44:10.707 に答える