reloadData()致命错误:意外地发现零,而解包一个可选的值

该应用程序在线崩溃 在这里输入图像说明

class ImageValueCell: UITableViewCell, UITableViewDelegate, UITableViewDataSource { @IBOutlet weak var imagesList: UITableView! var imageArray: NSArray! override func awakeFromNib() { //super.awakeFromNib() // Initialization code imagesList.delegate = self; imagesList.dataSource = self; imageArray = NSArray() imagesList.reloadData() } func addImagesValue(objectList: NSMutableArray, machine: WIFIMachine){ imageArray = objectList imagesList.reloadData() //CRASHED HERE } 

}

我跟踪并发现在发生崩溃时imageList是零。 这是在故事板上创build的具有UITableView的自定义单元格。 任何人都可以告诉我可能的解决scheme,我可以尝试?

如果在调用awakeFromNib之前调用addImagesValue ,则代码将清空该数组。 我不认为这是你想要的。 这是一个更好的解决scheme:

 class ImageValueCell: UITableViewCell, UITableViewDelegate, UITableViewDataSource { @IBOutlet weak var imagesList: UITableView! var imageArray: NSArray = NSArray() { didSet { // whenever the imageArray changes, reload the imagesList if let imagesList = imagesList { imagesList.reloadData() } } } override func awakeFromNib() { // why isn't the below done from inside the nib file? That's how I would do it. imagesList.delegate = self imagesList.dataSource = self imagesList.reloadData() } func addImagesValue(objectList: NSMutableArray, machine: WIFIMachine){ imageArray = objectList } }