Swift无法识别的选择器发送到实例

时间:2015-03-13 13:55:10

标签: ios swift

我正在制作一个最基本的计算器,从斯坦福在线课程中学习。我只做了一个“乘法”按钮,它在Array“operandStack”中乘以两个值,但每次我的程序崩溃而且我不知道为什么。

    import UIKit

    class ViewController: UIViewController
        {
         @IBOutlet weak var display: UILabel!
         var userIsInTheMiddleOfTypingANumber:Bool = false

        @IBAction func appendDigit(sender: UIButton) {
               let digit = sender.currentTitle!
              if userIsInTheMiddleOfTypingANumber {
                 display.text = display.text! + digit
               } else {
                  display.text =  digit
                  userIsInTheMiddleOfTypingANumber = true
            }
         }

       @IBAction func operate(sender: UIButton) {
           let operation = sender.currentTitle!
           if userIsInTheMiddleOfTypingANumber {
             enter()
            }
           switch operation {
             case "×":
              if operandStack.count >= 2 {
                displayValue = operandStack.removeLast() * operandStack.removeLast()
                enter()
            }
             default: break
           }
        }
 var operandStack = Array<Double> ()

       @IBAction func enter() {
          userIsInTheMiddleOfTypingANumber = false
          operandStack.append(displayValue)
          println("operandStack = \(operandStack)")
        }


       var displayValue: Double {
         get {
            return   NSNumberFormatter().numberFromString(display.text!)!.doubleValue
        }
        set {
            display.text = "\(newValue)"
            userIsInTheMiddleOfTypingANumber = false
            }
        }
     }

1 个答案:

答案 0 :(得分:0)

当我注意到我的加号时,我解决了我的问题,更少的标志和分开的标志与Touch Up内部的2个已发送事件相关联(View Controller - &gt; appendDigit并运行)。我从appendDigit断开了我的标志,它工作正常。甚至我在发送者函数中添加了一个参数

$.post('testPht.php', {mobile_no: mobile_no}, function(data)
{
    if(data.trim() == "Record Found")
    {
        // do what you want if record is founded
    }
    else if(data.trim() == "Record not Found")
    {
        // do what you want if record not founded
    }
});            

我使用了这样的输入函数:输入(发送者)。 另一个问题是这行代码:

@IBAction func enter(sender: AnyObject?) {
    userIsInTheMiddleOfTypingANumber = false
    operandStack.append(displayValue)
    println("operandStack = \(operandStack)")

}

我改变了这一行:

return NSNumberFormatter().numberFromString(display.text!)!.doubleValue
正如我在这个讨论fatal error: unexpectedly found nil while unwrapping an Optional value - Standford Calculator

中所看到的那样

我希望这有助于程序员检查斯坦福课程。