ios - 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)
}
}
解决方案
在下划线和控制器之间放一个空格
protocol GuessDelegate {
func userDidFinish(_ controller:GuessInputViewController, guess:String)
}
推荐阅读
- ckeditor - 元素不支持指定的元素模式:“ul”
- selenium - Cucumber 不满足的依赖异常
- python - 如何以最快的方式将数组列表中的每个0变成-1?
- laravel - Vue js选择框给出了几个错误
- ios - URL Scheme 有时会在应用后启动 App Store
- javascript - 视差效应 - Firefox 性能不佳
- arrays - Mongoose 实例未保存到数据库,未显示错误
- regex - 如何在一个竖线“|”之间移动长度可变的列 和 ”[”?
- drupal - Drupal 8 Jsonapi Get 请求抛出错误请求错误
- python - 将 CLOB 插入从另一个数据库中选择的数据库