好吧,今天我将 Xcode 更新到 10.0 版后,我的代码中遇到了以下错误。
// error: Cannot convert value of type '[UITableViewCell.Type]' to expected argument type
// '[_.Type]'
table.registerCells(cells: [MainMenuTableViewCell.self,
RescueServicesTableViewCell.self])
这是registerCells
功能:
func registerCells<T> (cells : [T.Type]) where T: UITableViewCell {
for cell in cells {
let nib = UINib(nibName: String(describing: cell), bundle: nil)
register(nib, forCellReuseIdentifier: String(describing: cell))
}
}
一开始我认为这可能是 swift re-versioning 问题,所以我从 swift 3 转换为 swift 4,在花了 2 个小时修复语法后,错误仍然存在,直到我做了魔术。
let cellItems = [MainMenuTableViewCell.self,
RescueServicesTableViewCell.self]
table.registerCells(cells:cellItems)
该解决方案有效并且错误消失了。现在我的问题是为什么我收到这个错误是这个 Xcode 问题还是我做错了什么?