Ошибка, соответствующая самодельному протоколу в Swift

#ios #delegates #swift #protocols #xcode6

#iOS #делегаты #swift #протоколы #xcode6

Вопрос:

Я создал протокол в одном из моих ViewControllers над объявлением класса следующим образом:

 @class_protocol protocol CRAAddCredentialDelegate {
    func didAddCredential()
}

class CRAAddCredentialTableViewController: UITableViewController {
    ....
}
 

Однако, когда я пытаюсь соответствовать этому протоколу:

 class CRAMainViewController: UIViewController, UITableViewDataSource, UITableViewDelegate, CRAAddCredentialDelegate {
    ....
}
 

Я получаю сообщение об ошибке:

введите описание изображения здесь

Что я делаю не так?

Ответ №1:

Вы добавили функцию didAddCredential() в свой CRAMainViewController класс?

Добавляя , CRAAddCredentialDelegate в список протоколов, вы указываете, что ваш класс будет предоставлять все переменные и функции, которые включает протокол.

Поэтому вам нужно их действительно предоставить.

 class CRAAddCredentialTableViewController: UITableViewController {
     func didAddCredential() {
         // add code here
     }

     ....
}
 

Ответ №2:

Вы должны реализовать требуемый протокол. В вашем случае func didAddCredential() объявленный в протоколе CRAAddCredentialDelegate не реализован, поэтому он выдает ошибку.