在Objective-C中添加两个数字并显示结果

时间:2015-07-18 11:23:17

标签: objective-c string

我为iPhone制作了一个小应用程序,可以添加两个复杂的数字(我刚开始学习)。

在程序中我可以在文本字段中输入一些数字,程序将处理字符串并保存数字。

我的问题是如何显示两个数字的加法。

我的意思是:

我有一个可以显示真复数实例的实部和虚部的函数,它工作正常:

- (void) functionDisplayInfo {
    // number 1
    if ([number1 functionProcessString:self.textEditComplexNumber1.text]) {
        self.labelComplex1.text = [NSString stringWithFormat: @"true, %f, %f", number1.getRealValue, number1.getImgValue];
    } else {
        self.labelComplex1.text = @"false";
    }

    // number 2
    if ([number2 functionProcessString:self.textEditComplexNumber2.text]) {
        self.labelComplex2.text = [NSString stringWithFormat: @"true, %f, %f", number2.getRealValue, number2.getImgValue];
    } else {
        self.labelComplex2.text = @"false";
    }
}

但是当我尝试真正添加复数的两个实部或虚部时,它不起作用。代码类似于上面的代码示例。这是代码示例:

- (IBAction)functionAddition:(id)sender {
    self.labelDisplayResult.text = [NSString stringWithFormat:@"result is: %f %f", number1.getRealValue + number2.getRealValue, number1.getImgValue + number2.getImgValue];
    [self functionDisplayInfo];
}

此代码仅显示0.000 ..和0.000 ...何时应显示添加结果。

有人可以告诉我,我做错了什么。感谢

1 个答案:

答案 0 :(得分:1)

只是一个猜测,因为没有足够的信息。

读取代码看起来方法select * from Sample where DeleteFlg != True 接受一个字符串并从中解析一个复数。在var ret = ( from f in db.Sample where f.DeleteFlg != true select new { Name = f.Name } ) functionProcessString:functionDisplayInfo上调用此方法 - 因此该方法名称错误,解析并显示。

在您的方法number1中,您执行了添加,然后调用number2,这表示您在之前添加已解析数字。

我怀疑无论functionAddition:functionDisplayInfo类型是什么,它都被初始化为零,只有在调用number1后才会发生变化,因此首先进行加法会给出零。

您可以通过简单地交换number2中两个语句的顺序来解决您的问题,以便首先进行解析。

您可能需要考虑重新设计代码,以便通过单独的方法处理输入的解析和显示。您也可以对输出执行相同操作,将输入操作与其结果显示分开。这可能会为您提供更清洁的设计,避免出现问题。例如。在这样的设计下,伪代码中的functionProcessString:将是:

functionAddition:

HTH