每次我滚动 cell.viewWithTag 时都会出现致命错误,同时展开发现 nil

Everytime I scroll cell.viewWithTag will give fatal error while unwrapping found nil

每次滚动时我都有一个包含单元格的 table 视图我收到致命错误:在展开可选值时意外发现 nil

它会将此代码标记为绿色:let button = cell.viewWithTag(1009) as! UIButton

  override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell 
{ 
  let cell = tableView.dequeueReusableCellWithIdentifier("ChecklistItem") as! UITableViewCell 
  let label = cell.viewWithTag(1000) as! UILabel 
  let button = cell.viewWithTag(1009) as! UIButton 
  button.tag = indexPath.row        
  ...
 }

我通过添加这个 if 子句解决了这个问题:

  if button == nil{
        println("Do nothing");
    }else{
        button!.tag = indexPath.row

    }

出现致命错误:展开可选值时意外发现 nil 导致您在设置标签后从 viewWithTag 获取按钮

let button = cell.viewWithTag(1009) as! UIButton 
**button.tag = indexPath.row**

所以没有更新按钮标签,在按钮可访问性标识符中传递所需信息

let button = cell.viewWithTag(1009) as! UIButton 
button.accessibilityIdentifier = "\(indexPath.row)"

通过

获取按钮信息后
let indexRow = Int(button.accessibilityIdentifier!)

我遇到了同样的问题并通过(可选绑定)'if let' 或 'Guard let'

解决了它
if let button : UIButton = cell.viewWithTag(1009) as? UIButton{
button.tag = indexPath.row

// your code...

}else{
print("Do nothing");
}