The app crashes at the line
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
}
}
I trace through and found that imageList is nil when the crash happens. This is a custom cell with a UITableView created on the storyboard. Can anyone advise me on the possible solution that i could try?
If you are calling addImagesValue
before the awakeFromNib
is called, then your code will empty the array. I don't think that is what you want. Here is a better solution:
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
}
}