UnR*_*ewa 8 declaration uitableview ios swift xcode8
使用新的Xcode 8.3,我收到错误:
无法覆盖扩展中的非动态类声明
在代码行
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
Run Code Online (Sandbox Code Playgroud)
我怎么能避免这个警告?
小智 11
扩展可以向类型添加新功能,但它们不能覆盖现有功能。
您有两个选择:
在类范围内移动您的方法,而不是扩展。
将dynamic类型添加到您的方法(定义它的地方),例如示例。
@objc open dynamic func onLog(_ message: String) -> Void {
print("Info: \(message)");
}
Run Code Online (Sandbox Code Playgroud)
小智 5
这意味着,您不能像扩展中的超类委托方法那样重写。您可以通过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
}
Run Code Online (Sandbox Code Playgroud)
}
| 归档时间: |
|
| 查看次数: |
5133 次 |
| 最近记录: |