Xcode请求,我在函数中未定义参数时使用参数标签吗?

问题描述 投票:-1回答:2

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

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)
        }
    }
ios swift xcode
2个回答
2
投票

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

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

0
投票

一旦在下划线后添加空格,它将起作用。

protocol GuessDelegate {
    func userDidFinish(_ controller:GuessInputViewController, guess:String)
}
© www.soinside.com 2019 - 2024. All rights reserved.