协议不符合从通用父 class 继承的 class?

A protocol is not conforming to a class inherited from a generic parent class?

我正在尝试使 class 符合协议,但是我遇到了错误。这是代码:

class UserSearchViewController: GenericSearchViewController<User> 

我正在尝试使其符合 buttontappeddelegate:

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

将自己分配给委托时出现错误:

adapter.delegate = self 

Cannot assign value of type 'UserSearchViewController.Type' to 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

}

因为您是在静态函数中执行此操作,所以您不能使用 self 来引用 VC 的实例。相反,您已经拥有 VC 的一个实例!这是 vc.

只需将 vc 设置为代表而不是 self:

adapter.delegate = vc