2016-09-07 36 views
0

我不敢相信我在第一次講座中遇到問題!我們正在建立一個計算器(在這一點上它根本不起計算器的作用)。我的工作很好,直到performOperation函數被添加。現在我得到「這個類不符合關鍵值編碼」的錯誤。問題是,就我所見,我的代碼完全複製了他在類中使用的代碼。我必須失去一些東西,但我已經檢查了大約50次以找到差異,我找不到一個。幫幫我?它每次都在崩潰。cs193p Swift - 鍵值編碼錯誤

import UIKit 

class ViewController: UIViewController { 

@IBOutlet weak var display: UILabel! 

var userIsInTheMiddleOfTyping = false 

@IBAction func touchDigit(sender: UIButton) { 
    let digit = sender.currentTitle! 

    if userIsInTheMiddleOfTyping { 
     let textCurrentlyInDisplay = display.text! 
     display.text = textCurrentlyInDisplay + digit 
    } else { 
     display.text = digit 
    } 

    userIsInTheMiddleOfTyping = true 
} 


@IBAction func performOperation(sender: UIButton) { 
    userIsInTheMiddleOfTyping = false 
    if let mathematicalSymbol = sender.currentTitle { 
     if mathematicalSymbol == "π" { 
      display.text = String(M_PI) 
     } 
    } 
} 

} 

編輯:代碼格式

+0

我認爲這將是有益的,如果你可以包括你使用Interface Builder創建了計算器的屏幕截圖。你的代碼對我來說看起來很好。另外,你什麼時候遇到這個錯誤?按下按鈕後? – Suhaib

+0

在這裏發佈時請注意。編輯您的標題來準確描述您的問題的性質。堆棧溢出意味着更多的是一個維基百科的編程問題,而不是一個自由流動的討論組。 –

+0

如果您在代碼中重命名或刪除@IBOutlet,則會發生錯誤。單擊故事板中的ViewController,然後在Xcode右側的Connections Inspector中檢查連接。一個沒有連接的插座將有一個!在它的旁邊。通過單擊它旁邊的x來刪除該連接並嘗試再次連接。 – vacawama

回答

1

您可以檢查您的ViewController在故事板,在合適的工具欄中的文本字段模塊。

執行以下步驟如果模塊文本框 是空的(沒有佔位符):

  • 步驟1.自動對焦模塊的TextField
  • 步驟2.編輯隨機然後清除
  • 步驟3.按Enter鍵,如果結果與這張照片一樣,一切都會變得很好。

enter image description here

+0

謝謝!不幸的是,它已經正確連接到計算器,所以這不是問題。 –

+0

儘管連接了屬性,但我之前遇到過這個問題。我想這是由xcode的錯誤引起的。 –