0

Я недавно рисковал собой в Swift, но я не мог понять, почему мои коды не работают, когда im возвращают Int в методе.Отсутствует метка аргумента при вызове метода в «шаблоне проектирования стратегии» -SWIFT

protocol StrategyProtocol 
{ 
    func calculate(num1:Int, num2:Int) ->Int 
} 

class Context 
{ 
    var _strategyProtocol: StrategyProtocol! 

    init(_strategyProtocol: StrategyProtocol) 
    { 
     self._strategyProtocol=_strategyProtocol 
    } 

    func Calculate(num1: Int, num2: Int) ->Int 
    { 
     return _strategyProtocol.calculate(num1, num2) 
    } 
} 

class Add: StrategyProtocol 
{ 
    func calculate(num1: Int, num2: Int) -> Int 
    { 
     return num1 + num2 
    } 
} 

class Minus: StrategyProtocol 
{ 
    func calculate(num1: Int, num2: Int) -> Int 
    { 
     return num1 - num2 
    } 
} 

по-видимому, эта строка кода не работает и запрос из отсутствующий аргумент метки «num2:» в вызове

//return _strategyProtocol.calculate(num1, num2) 

может кто-нибудь показать мне, как это исправить и объяснить мне.

ответ

1

В Calculate FUNC вам не хватает 2-й аргумент:

func Calculate(num1: Int, num2: Int) ->Int 
    { 
    return _strategyProtocol.calculate(num1, num2: num2) 
    } 
+0

спасибо так много .. но почему у включают num2: и вы не должны делать это для num1? –

+0

Проверьте эту ссылку [http://www.objc.io/issues/16-swift/swift-functions/](http://www.objc.io/issues/16-swift/swift-functions/) –

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

  • Нет связанных вопросов^_^