更新到iOS9后,我开始在以下代码中看到一个奇怪的警告:
func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView?
{
var result: UIView?
if UserPerspective.List == currentUser.perspective.value
{
result = tableView.dequeueReusableCellWithIdentifier("CustomHeader") as? UIView
}
return result
}
正如标题中所述,我得到以下警告:
从“UITableViewCell”转换为无关类型“UIView”始终失败
我无法理解它失败的原因,因为UITableViewCell是UIView的子类,然后转换应该没问题。但是,swift编译器不这么认为:)
答案 0 :(得分:3)
你不应该施展它。
这应该足够了
let result = tableView.dequeueReusableCellWithIdentifier("CustomHeader")
结果为UITableViewCell?
如果你有自定义的UITableViewCell,我们可以将其称为customTableViewCell
,你可以执行以下操作:
let result = tableView.dequeueReusableCellWithIdentifier("CustomHeader") as! customTableViewCell
答案 1 :(得分:1)
你不需要将UITableViewCell转换为UIView,因为它总是会成功,你得到上述错误,因为你正在为UIView投射一个可选项
result = tableView.dequeueReusableCellWithIdentifier("CustomHeader")! as? UIView
这样可行,但是没有用它。