2015-07-28 1 views
0

Привет, я только что подобрал Свифта и следую открытому курсу Стэнфорда. Я делал этот калькулятор и получил точку останова в строке userIsInTheMiddleOfTyping = false в функции func enter, когда я разместил строку до . После того, как я поместил строку в нижней части функции, проблема была решена. Но почему?Вопросы относительно установки значений и геттеров и сеттеров в Swift

Кроме того, я не получаю часть получения и установки в displayValue. Может кто-нибудь помочь объяснить, как эта часть выполнена. И откуда взялась новая ценность? почему он представляет любую ценность на дисплее? Выполняется код. Буду признателен за любые ответы и комментарии!

class ViewController: UIViewController { 

    @IBOutlet weak var display: UILabel! 

    var userIsInTheMiddleOfTypingAnNumber = false 

    @IBAction func AppendDigit(sender: UIButton) { 
     let digit = sender.currentTitle! 
     if userIsInTheMiddleOfTypingAnNumber { 
      display.text = display.text! + digit 
     } 
     else{ 
      display.text = digit 
      userIsInTheMiddleOfTypingAnNumber = true 
     } 
    } 
    var operandStack = Array<Double>() 
    @IBAction func enter() { 
     operandStack.append(displayValue) 
     println("operandStack=\(operandStack)") 
     userIsInTheMiddleOfTypingAnNumber = false 
    } 

    var displayValue: Double{ 
     get{ 
      return NSNumberFormatter().numberFromString(display.text!)!.doubleValue 

     } 
     set{ 
      display.text = "\(newValue)" 
      userIsInTheMiddleOfTypingAnNumber = false 

     } 

    } 
} 

ответ

0

get и set являются ключевыми словами, используемыми в Swift, чтобы определить пользовательские методы получения и установки для свойства.

newValuenewValue - это имя по умолчанию для нового значения, которое будет присвоено переменной в конце сеттера, оно позволяет вам проверять различные вещи перед их назначением.

Для первой части вашего вопроса я не совсем понимаю, что не работает для вас.

Смежные вопросы