在尝试设置类标签属性时获取Nil | UITableView的

时间:2017-07-30 21:19:57

标签: ios swift uitableview

我在运行此代码时解开一个Optional值时意外地发现nil。

我要做的是获取对象数组中的第一个属性,因此我使用.map来获取第一个属性“workoutName”

然后我尝试将CellData类中的标签设置为此值,但不断发现它找到了nil。

我感谢所有帮助。

document.addEventListener("keydown", keyBoardInput);
document.numberD = 0;

    function keyBoardInput() {
    var i = event.keyCode;

    if (i == 37) {

      document.numberD++;
        document.getElementById('player').style.transform = "rotate(" + document.numberD + "deg)";
        console.log('fired');
      }
    }

单元格数据类

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

        var workoutName = workouts.map { $0.workoutName }

        let cell = CellData()

        cell.workoutNameLabel.text! = workoutName[indexPath.row]
        return cell

    }

1 个答案:

答案 0 :(得分:0)

我会将类变量设置为CellData类并将其设置为awakeFromNib,因为awakeFromNib在cellForRow完成之前不会发生,因此您几乎可以100%确定标签将为nil。试试这个:< / p>

import UIKit

class CellData: UITableViewCell {

    //someLableValue string
    var labelValueText: String?

    @IBOutlet weak var workoutNameLabel: UILabel!
    @IBOutlet weak var numberOfSetsNumberLabel: UILabel!
    @IBOutlet weak var numberOfRepsNumberLabel: UILabel!

    override func awakeFromNib() {
        super.awakeFromNib()
        // Initialization code
        workoutNameLabel.text = labelValueText
    }

    override func setSelected(_ selected: Bool, animated: Bool) {
        super.setSelected(selected, animated: animated)

        // Configure the view for the selected state
    }

}

然后你jsut在UITableViewController类的cellForRowMethod中设置变量labelValueText