任何人都可以一步一步解释这个简单的方法在做什么吗?

时间:2015-08-03 15:33:14

标签: ios swift

这是计算器程序的一部分

创建一个带有false值的布尔类型变量,用于if语句

var userIsInTheMiddleOfTypingANumber: Bool = false

我们将按钮的标题设置为0-9并使数字变量值等于按钮的标题(0-9),我们希望数字显示在我们创建的标签显示中但我们需要0(从我们创建的标签显示中删除的第一个按钮的标题,一旦我们开始输入数字)

@IBAction func appendDigit(sender: UIButton)
{

    let digit = sender.currentTitle!

    if userIsInTheMiddleOfTypingANumber {

        display.text = display.text! + digit


    }
    else {

   display.text = digit


    userIsInTheMiddleOfTypingANumber = true


    }

}

2 个答案:

答案 0 :(得分:1)

让我们一步一步地完成这个过程。

如果您考虑一下计算器的工作原理,如果您输入一个全新的数字(比如说您刚刚得到一个答案,并且想要从一个新的等式开始),则整个条形将被删除以代替新的数字正在打字。

但是每次输入数字时都不会发生这种情况,否则整个条形只能读取一个数字。

您的职能是:

@IBAction func appendDigit(sender: UIButton)
{

    let digit = sender.currentTitle!

    if userIsInTheMiddleOfTypingANumber {

        display.text = display.text! + digit


    }
    else {

   display.text = digit


    userIsInTheMiddleOfTypingANumber = true


    }

}

第一行:

let digit = sender.currentTitle!

将变量数字设置为当前正由用户键入的数字。

下一行,

 if userIsInTheMiddleOfTypingANumber {
          display.text = display.text! + digit
       }

如果用户正在键入数字,屏幕上的数字将追加用户输入的任何数字。

最后一部分:

    else {

   display.text = digit


    userIsInTheMiddleOfTypingANumber = true


    }

}

检测到用户正在输入一个全新的数字(可能会开始一个新的等式),因此文本完全被用户输入的第一个数字替换

然后将模式设置为userIsInTheMiddleOfTypingANumber,以便跟随第一个数字后面的任何数字都将附加到结尾而不是替换整个数字。

希望这有帮助!

答案 1 :(得分:0)

基本上,当您单击第一个数字时,它会看到并将显示文本设置为该单个数字。然后,将在此之后键入的每个数字添加到第一个数字的末尾以创建更大的数字。