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

时间:2019-05-30 20:24:43

标签: swift generics protocols standards-compliance

我正在尝试使类符合协议,但是却出现错误。这是代码:

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 :(得分:0)

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

只需将vc设置为委托,而不是self

adapter.delegate = vc