0

每次滚动时,我都有一个带有单元格的表格视图出现致命错误:在展开可选值时意外发现 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        
  ...
 }
4

3 回答 3

0

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

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

    }
于 2015-07-30T11:03:32.657 回答
0

出现致命错误:在展开可选值时意外发现 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!)
于 2018-04-02T16:58:07.347 回答
0

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

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

// your code...

}else{
print("Do nothing");
}
于 2022-02-04T22:06:16.863 回答