首页 > 解决方案 > Xcode请求我在函数中没有定义参数标签时使用?

问题描述

我有这个协议,我继续在我的视图控制器中实现它。

protocol GuessDelegate {
    func userDidFinish(_controller:GuessInputViewController, guess:String)
}

但是,当我调用它时,编译器会强制我在_controller:之前输入self(请参见下文)。如果我尝试这样做,它不允许我写作delegate.userDidFinish(self, guess: guessText)并抱怨缺少参数标签。

但是,方法签名没有参数标签,只是一个controller带有前导下划线的参数名称,我认为这意味着参数名称因此不需要在函数调用中输入。

到底发生了什么?可能是因为它是一种协议方法而表现得像这样吗?

@IBAction func saveGuess(_ sender: AnyObject) {
        if let delegate = delegate, let guessText = guessTextField.text {
            delegate.userDidFinish(_controller: self, guess: guessText)
        }
    }

标签: iosswiftxcode

解决方案


在下划线和控制器之间放一个空格

protocol GuessDelegate {
    func userDidFinish(_ controller:GuessInputViewController, guess:String)
}

推荐阅读