【发布时间】:2019-05-30 20:24:43
【问题描述】:
我正在尝试使一个类符合协议,但是,我遇到了错误。代码如下:
class UserSearchViewController: GenericSearchViewController<User>
我正在尝试使其符合buttontappeddelegate:
extension UserSearchViewController: ButtonDidGetTappedDelegate {
func button(wasTappedInCell cell: UserCollectionViewCell) {
print("Cell Tapped")
}
}
将 self 分配给委托时出现错误:
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
}
【问题讨论】:
-
你在哪里写
adapter.delegate = self这一行?你能显示周围的代码吗?该错误消息使我怀疑您是在静态上下文中编写该行。 -
@Sweeper 该行在静态函数中。该静态函数返回 UserSearchViewController 类型的视图控制器。我会更新代码。
-
另外,你似乎在扩展
ChatUserSearchViewController,但你说你想让UserSearchViewController(没有Chat)符合协议。 -
@Sweeper 刚刚更新了代码
-
@juliand665 已更正!这不是问题。
标签: swift generics protocols standards-compliance