下面的代码是在UItableview中显示单元格的名称.
override func tableView(tableView: UITableView,cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { let cell = tableView.dequeueReusableCellWithIdentifier("Cell") as UITableViewCell cell.textLabel!.text = "Spring \(indexPath.row + 1)" return cell }
有一个编译错误,Xcode建议我将’as’更改为’as!’ –
let cell = tableView.dequeueReusableCellWithIdentifier("Cell") as! UITableViewCell
可能有人解释了什么是垂头丧气,为什么我们需要在这种情况下垂头丧气?
解决方法
OK ..lets让它变得非常简单.
在线上:
let cell = tableView.dequeueReusableCellWithIdentifier("Cell")
您正在访问tableView的方法dequeueReusableCellWithIdentifier,如果您查看文档,您可以看到返回类型是AnyObject?.
现在假设您要访问textLabel属性
cell.textLabel!.text = "Spring \(indexPath.row + 1)"
你不能这样做.因为AnyObject上没有任何textlabel类型.
因此,您正在向下转发强制编译器更具体的类UITableViewCell,如下所示,因为稍后您尝试访问文本标签属性:
let cell = tableView.dequeueReusableCellWithIdentifier("Cell") as! UITableViewCell
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。