为什么Swift 1.2需要强制解包?

4th*_*ace -1 optional swift

在Swift 1.2中,以下内容

let cell = tableview.dequeueReusableCellWithIdentififer("mycell"), forIndexPath: indexPath) as UITableViewCell
Run Code Online (Sandbox Code Playgroud)

现在一定要用!

let cell = tableview.dequeueReusableCellWithIdentififer("mycell"), forIndexPath: indexPath) as! UITableViewCell
Run Code Online (Sandbox Code Playgroud)

在第一个例子中,单元格可以是零?对于常数为零而言似乎很奇怪.

在第二个例子中,Swift确保在编译时有一个值?

mat*_*att 5

它不是"强行打开".它与选项或展开无关.这是演员运营商的新版本as.在Swift 1.2中,我们使用as!运算符来进行可靠的向下转换; 感叹号旨在提醒我们,如果这件事情不是我们所声称的课程,我们就会崩溃.这总是如此; 使用as!as不仅仅是一种帮助你了解事实的方法.