Протокол не соответствует классу, унаследованному от общего родительского класса? - PullRequest
0 голосов
/ 30 мая 2019

Я пытаюсь согласовать класс с протоколом, но получаю ошибку.Вот код:

class UserSearchViewController: GenericSearchViewController<User> 

Я пытаюсь согласовать его с buttontappeddelegate:

extension UserSearchViewController: ButtonDidGetTappedDelegate {
func button(wasTappedInCell cell: UserCollectionViewCell) {
    print("Cell Tapped")
   }
}

. Я получаю ошибку, когда присваиваю себя делегату:

adapter.delegate = self 

Невозможно присвоить значение типа 'UserSearchViewController.Type' для типа 'ButtonDidGetTappedDelegate?'

В чем здесь проблема?Любая помощь будет оценена.

class UserSearchViewController: GenericSearchViewController<User> {
    static func searchV (Config: ConfigurationProtocol,
                     dataSource: DataSource,
                     viewer: User) ->  UserSearchViewController
  let vc = UserSearchViewController(Config, dataSource,viewer) 
   ......
   ...
  adapter.delegate = self
  return vc

}

1 Ответ

0 голосов
/ 30 мая 2019

Поскольку вы делаете это в статической функции, вы не можете использовать self для ссылки на экземпляр вашего VC. Вместо этого у вас уже есть экземпляр вашего VC! Это vc.

Просто установите vc в качестве делегата вместо self:

adapter.delegate = vc
...