代码之家  ›  专栏  ›  技术社区  ›  Osama Naeem

协议不符合从泛型父类继承的类?

  •  0
  • Osama Naeem  · 技术社区  · 6 年前

    我试图使一个类符合一个协议,但是,我得到了一个错误。代码如下:

    class UserSearchViewController: GenericSearchViewController<User> 
    

    我想让它符合 buttontappeddelegate :

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

    当我将self分配给代理时,我得到错误:

    adapter.delegate = self 
    

    无法将“UserSearchViewController.type”类型的值分配给“buttondidgettappedelegate?”

    这里有什么问题?任何帮助都将不胜感激。

    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 回复  |  直到 6 年前
        1
  •  0
  •   Sweeper    6 年前

    因为这是在静态函数中进行的,所以不能使用 self 引用你的VC的一个实例。相反,你已经有了一个风险投资的实例!它是 vc .

    刚刚准备好 风险投资 作为代表而不是 自己 :

    adapter.delegate = vc