使用新的Xcode 8.3,我收到错误:
无法覆盖扩展程序
中的非动态类声明
代码行
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
如何避免此警告?
答案 0 :(得分:4)
这意味着,您不能在扩展中覆盖类似超类委托方法。 你可以做的方法是mv扩展覆盖方法到子类声明。
final class DEMO, UITableViewDataSource, UITableViewDelegate {
override func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
return sectionHeader
}
override func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
return 40
}
}
答案 1 :(得分:3)
,因为:
扩展程序可以为类型添加新功能,但它们无法覆盖现有功能。
你有两种方式:
1-在类范围内添加您的方法而不是扩展名
2-或为您定义的方法添加动态类型