uitableview – Swift – 什么是向下转型?为什么我需要在tableview中向下转换单元格?

uitableview – Swift – 什么是向下转型?为什么我需要在tableview中向下转换单元格?,第1张

概述下面的代码是在UItableview中显示单元格的名称. override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { let cell = tableView.dequeueReu 下面的代码是在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
总结

以上是内存溢出为你收集整理的uitableview – Swift – 什么是向下转型?为什么我需要在tableview中向下转换单元格?全部内容,希望文章能够帮你解决uitableview – Swift – 什么是向下转型?为什么我需要在tableview中向下转换单元格?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1010587.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存