XCode запросы я использую метку аргумента, когда не определено в функции? - PullRequest
0 голосов
/ 06 апреля 2020

У меня есть этот протокол, который я go включил для реализации в моем контроллере представления.

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)
        }
    }

Ответы [ 2 ]

2 голосов
/ 06 апреля 2020

поставить пробел между подчеркиванием и контроллером

protocol GuessDelegate {
    func userDidFinish(_ controller:GuessInputViewController, guess:String)
}
0 голосов
/ 06 апреля 2020

Это будет работать после добавления пробела после подчеркивания.

protocol GuessDelegate {
    func userDidFinish(_ controller:GuessInputViewController, guess:String)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...