2016-11-07 43 views
-1

我想了解程序員如何解釋此代碼,以及最後一行的用途是什麼? 我是一名新手,我不確定自己是否正確理解此代碼。希望你會給出很好的詳細答案,這樣我就可以從中獲得我的好處,以及其他新的初學者。瞭解Ios上的計算器代碼

var UserIsInTheMiddleOfTyping = false 
@IBAction func TouchedDigit(_ sender: UIButton) { 
    let digit = sender.currentTitle! 
    let CurrentTextinDisplay = Display.text! 
    if UserIsInTheMiddleOfTyping { 
    Display.text = CurrentTextinDisplay + digit 
    }else{ 
     Display.text = digit 
    } 
    UserIsInTheMiddleOfTyping = true 
} 

}

回答

3

這是基於我的代碼該片段的解釋的簡要說明。

顯然,在執行方法之前,我們不知道,如果用戶鍵入任何東西,或沒有,因爲該方法可能已經被調用,因此UserIsInTheMiddleOfTyping可能是要麼truefalse

var UserIsInTheMiddleOfTyping = false

當他在計算器上點擊一個數字時,觸發方法TouchedDigit(_ sender: UIButton)

一個新的常數digit創建並設定爲發送者的標題這是UIButton一個實例(該標題屬性是該按鈕的顯示名稱,例如1,2,3 ...)

一個新的常數CurrentTextinDisplay創建並設置爲我所想的內容是一個UITextField(通過拆它,因此不爲空)

讓CurrentTextinDisplay = Display.text!

如果用戶打字什麼的方法被調用(非常糟糕的代碼實現,雖然)之前,我們追加之前創建的Display實例,它(我猜)持有已輸入的數字內容的digit不變。

如果UserIsInTheMiddleOfTyping { Display.text = CurrentTextinDisplay +數字 }

否則,如果用戶輸入第一個數字,WHE設置Display實例來保存該第一digit

else { Display.text = digit }

在返回方法將UserIsInTheMiddleOfTyping設置爲true之前。 (下次該方法被觸發時,我們將確定輸入if語句並追加新的數字。)

UserIsInTheMiddleOfTyping =真

我會親自縮小代碼如下:

//There is no need to save in a variable if the user is in the middle of typing 
//Because he will be in this state only when the method is triggered, therefore just shrink as follows: 

@IBAction func TouchedDigit(_ sender: UIButton) { 

    //Safe unwrapping of sender.currentTitle: 
    if let actualDigit = sender.currentTitle { 

     //Safe unwrapping of Display.text: 
     if let actualText = Display.text { 

      Display.text = actualText + actualDigit 


     } 

    } 

} 

希望這有助於,如果有標記爲正確的問題。

再見

+0

謝謝Albert。這非常有幫助,我感謝你給時間來解釋它非常詳細。我不知道他們爲什麼要投我的問題,就像有一天他們不是初學者。但是非常感謝Albert。 –

+0

很高興我對你很有幫助。忘記別人,做你自己。下次嘗試更深入地描述您的問題。 –