如何纠正避免这种强制施法

Ily*_*rev 3 xcode swift swift3

我有这个强制演员:

let cell = tableView.dequeueReusableCell(withIdentifier: "TownTableViewCell",
                                                     for: indexPath) as! TownTableViewCell
Run Code Online (Sandbox Code Playgroud)

并试图通过典型方法避免这种情况:

if let cell = tableView.dequeueReusableCell(withIdentifier: "TownTableViewCell",
                                                     for: indexPath){
} 
Run Code Online (Sandbox Code Playgroud)

但它不正确,我应该如何解决这个问题?

vad*_*ian 11

不要回避它,强制施法。

这是欢迎强制转换的罕见情况之一。

如果一切都正确连接,代码一定不会崩溃。如果确实如此,则表明存在设计错误。

使用可选绑定避免强制转换是没有意义的,因为在提到的设计错误的情况下,表视图将不显示任何内容