在Swift 1.2中,以下
let cell = tableview.dequeueReusableCellWithIdentififer("mycell"), forIndexPath: indexPath) as UITableViewCell
现在必须使用!
let cell = tableview.dequeueReusableCellWithIdentififer("mycell"), forIndexPath: indexPath) as! UITableViewCell
在第一个例子中, cell 可以是nil吗?对于常数为零而言似乎很奇怪。
在第二个例子中,Swift确保在编译时有一个值?
答案 0 :(得分:5)
它不是“强制展开”。它与选项或展开无关。它是强制转换运算符as
的新版本。在Swift 1.2中,我们使用as!
运算符进行可靠的向下转换;感叹号旨在提醒我们,如果这件事情不是我们所声称的课程,我们就会崩溃。这总是为真;使用as!
代替as
只是帮助您了解事实的一种方式。
答案 1 :(得分:0)
因为向下倾斜必须成功..使用强制方式不会返回nil。所以安静很好的方式使铸造成功..如果它没有运行时错误......