我在运行此代码时解开一个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
}
答案 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