-3

我正在创建一个非常简单的计算器。为了保存第一个输入的用户float,我将它保存为添加操作中的字符串,以便在他们单击添加按钮时保存它。然后稍后我再次调用它以将其添加到第二个用户输入的float. 但是,当我再次调用它时,它会给出错误:使用未定义的标识符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 回答