我正在使用委託來傳遞我存儲在函數中的值。每當我嘗試實現委託到我的另一個類,我得到錯誤「AnswerViewController」不符合協議「TagToIndex委託」。擴展,錯誤產生:「協議需要功能與類型」是什麼意思?
協議需要函數'finishPassing(dictionary :)'與類型'(Dictionary) - >()'你想添加一個存根嗎?
這是協議:
protocol TagToIndexDelegate {
func finishPassing (dictionary:Dictionary<Int,Int>)
}
這裏是我想從發送變量的函數:
extension MyCell: YSSegmentedControlDelegate {
func segmentedControl(_ segmentedControl: YSSegmentedControl, willPressItemAt index: Int) {
tagToIndex[actionButton.tag] = index
delegate?.finishPassing(dictionary: tagToIndex)
}
func segmentedControl(_ segmentedControl: YSSegmentedControl, didPressItemAt index: Int) {
}}
哪裏delegate
爲TagToIndexDelegate
型的,和變量tagToIndex
這存在於willPressItemAt
之內是我傳遞的數據。
最後,類我想實現TagToIndexDelegate
class AnswerViewController: UIViewController, TagToIndexDelegate {
override func viewDidLoad() {
super.viewDidLoad()
}
}
我覺得我已經做了某種根本性的錯誤,但我沒有足夠的熟悉斯威夫特知道是什麼錯誤。
謝謝, 尼克