2016-07-14 2 views
1

Я новичок в Swift, и я изучаю его на iTunes U, используя курс Стэнфордского университета. Я программирую калькулятор. Инструктор в видео курса имеет тот же код, программное обеспечение и ту же версию Xcode.Значение типа ... не имеет значения

Так вот код для моего ViewController:

@IBAction private func performOperation(sender: UIButton) { 
    if userIsInTheMiddleOfTyping { 
     brain.setOperand(displayValue) 
     userIsInTheMiddleOfTyping = false 
    } 

    if let mathematicalSymbol = sender.currentTitle { 
     brain.performOperation(mathematicalSymbol) 
    } 

    displayValue = brain.result 
} 

Ошибка в последнем предложении: displayValue = brain.result:

Значение типа 'CalculatorBrain' не имеет значения 'результат'

Это часть калькулятораBrain код:

struct PendingBinaryOperationInfo { 
    var BinaryFunction: (Double, Double) -> Double 
    var firstOperand: Double } 

    var result: Double { get { return 0.0 } } 
} 

Так в чем проблема?

P.S. Все функции калькулятора еще не установлены. И ода, что некоторые предложили,

displayValue.text = "\(brain.result)" 

не работал вообще, и это дало мне массу других ошибок.

+0

Вы уверены, что это определено внутри класса «CalculatorBrain»? Не могли бы вы разместить полный код 'CalculatorBrain'? – fiks

+0

Кроме того, могу ли я спросить, каков тип вашего мозга? Опция + нажмите на свой мозг. – Happiehappie

+0

Сообщение об ошибке означает, что 'result' не входит в область класса или struct' CalculatorBrain'. – vadian

ответ

2

Здесь у вас есть переменная result, объявленная как свойство структуры PendingBinaryOperationInfo. Переменная result не является свойством (по крайней мере, не показано здесь) типа CalculatorBrain, где бы это ни было. Отсюда и ошибка.

У вас есть:

struct PendingBinaryOperationInfo { 
    var result: Double 
} 

Когда он ищет:

class CalculatorBrain { // 'class' is just an example 
    var result: Double 
} 
0

класс мозг не результата этого члена, Вы должны проверить класс мозга является то, что есть переменная результата. Результат может быть частной или внутренней переменной, поэтому вы не можете использовать. Это необходимо изменить для публичного участника.

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