- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试将 Swift 1.2 转换为 2.0,但在分配 tablviewCell 表单 dequeueReusableCellWithIdentifier 时遇到问题:
var cell:UITableViewCell? = tableview!.dequeueReusableCellWithIdentifier(identifier as String) as? UITableViewCell;
if (cell == nil)
{
cell = UITableViewCell(style: UITableViewCellStyle.Default, reuseIdentifier: identifier as String)
cell?.backgroundColor = UIColor.clearColor()
}
错误:
Downcast form UITableViewCell to UITableViewcell only unwraps optionals, did you mean to use '!'?
我相信 func dequeueReusableCellWithIdentifier 不会返回可选的,所以我试过了:
var cell:UITableViewCell = tableview.dequeueReusableCellWithIdentifier(identifier as String)
if (cell == nil){
...
我得到两个错误:
value of optional type tableview not unwrapped, did you mean to use! Binary operator can not be applied to operands of type UITableViewCEll and Niliretalconversion.
感谢任何意见
最佳答案
dequeueReusableCellWithIdentifier
返回一个 UITableViewCell?
。您正试图将其转换为非可选 (as?UITableViewCell
),但随后又将其分配回可选 (cell:UITableViewCell?
)。您不会从这项额外工作中获得任何信息,并且可以使用更简单的等效表达式。您最初的警告似乎是令人困惑的忽略转换的结果。
var cell:UITableViewCell? = tableview!.dequeueReusableCellWithIdentifier(identifier as String)
我们在这里知道 cell
的类型,因为它与 dequeueReusableCellWithIdentifier
的返回类型相匹配,所以我们可以这样写:
var cell = tableview!.dequeueReusableCellWithIdentifier(identifier as String)
我不知道 identifier
的类型是什么,但是 as
暗示的是总是可以成功地转换为 String
所以你可能可以进一步简化为:
var cell = tableview!.dequeueReusableCellWithIdentifier(identifier)
这整个条件可能可以通过 if let
或 guard
赋值进一步简化,但如果不知道调用它的更大上下文,就很难确定。
关于ios - 可选错误 Swift 1.2 到 2.0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33292462/
我正在尝试用 Swift 编写这段 JavaScript 代码:k_combinations 到目前为止,我在 Swift 中有这个: import Foundation import Cocoa e
我是一名优秀的程序员,十分优秀!