2016-03-10 5 views
1

Я не мог решить проблему «если да» в моем коде. На основании ошибки говорится, что я должен использовать необязательный тип?Инициализатор для условного связывания должен иметь необязательный тип, а не «()»

@IBAction func operate(sender: UIButton) { 

    if userIsInTheMiddleOfTypingANumber{ 
     enter() 
    } 
    if let operation = sender.currentTitle { 
     if let result = calcModel.performOperation(operation){ 
      displayValue = result 
     }else { 
      displayValue = 0 
     } 
    } 
} 

ответ

1

Я подозреваю, что ваша проблема в этой строке:

if let result = calcModel.performOperation(operation) 

вашей performOperation возвращаемой функции типа (), или пустоту, что означает, что он не возвращает ничего. Скорее всего, чтобы получить ошибку в названии, ваша performOperation функции на calcModel имеет следующую подпись:

func performOperation(operation: String) { 

Обратите внимание на отсутствие стрелки и типа. Если вы собираетесь возвращать результат, подпись должна быть чем-то вроде этого:

func performOperation(operation: String) -> Int { 

Вам нужно будет только if let, если вы решили вернуться Int?.

+0

Спасибо, Джош! Кажется, я заметил ошибку. Я забыл сделать performOperation, чтобы вернуть значение. –

+0

Добро пожаловать, и добро пожаловать в Переполнение стека. Когда ответ решает вашу проблему, вы можете пометить его как принятый ответ с помощью кнопки серого тика рядом с ней, и некоторые люди тоже захотят голосовать. –