-3

私は非常に単純な計算機を作成しています。最初のユーザー入力をfloat保存するには、追加ボタンをクリックしたときに保存するように、追加アクションで文字列として保存します。その後、もう一度呼び出して、2 番目のユーザー入力に追加しますfloat。ただし、もう一度呼び出すと、エラーが発生します: Use of undefined identifier num1。操作整数でも同じことが起こります。関連するコードは次のとおりです。

- (IBAction)addition {

    NSString *number1 = total.text;
      float  num1 = [number1 floatValue];
    int operation = 1;
    total.text = @"";

}

- (IBAction)equal {

    NSString *number2 = total.text;
    float num2 = [number2 floatValue];

    if (operation == 1) {
        int num3 = num1 + num2;


    NSString *znumber1 = [NSString stringWithFormat:@"%f", num1];
}
4

3 に答える 3

2

num1両方の関数からアクセスできるように、「インスタンス変数」として宣言する必要があります (通常は@interfaceブロック内で宣言されます)。

宣言する方法では、その関数のスコープ内のコードのみがアクセスできます。

続行する前に、変数のスコープについて読むことをお勧めします。

于 2013-01-11T21:36:59.610 に答える
1

num1は のスコープ内にのみある(IBAction)additionため、 では使用できません(IBAction)equal

于 2013-01-11T21:37:43.243 に答える
1

num1スコープが正しくありません。にローカルadditionです。クラスの .m ファイルにインターフェイスを入れたいとします。これにより、実装用のプライベート変数が提供されます。.h ファイルを入れると、プログラムの残りの部分に公開されます。

于 2013-01-11T21:40:15.130 に答える