Вы отбрасываете ячейку как ячейку UITableView, когда вы удаляете ее из очереди, так что у нее нет метки foodTitle
.
Вам нужно привести ее в качестве пользовательского типа ячейки, тогда вы будетевозможность доступа к вашим полям.
Лучше по-прежнему зарегистрироваться как правильный тип ячейки в viewDidLoad ...
tableView. register(MyCustomCellClass.self, forCellReuseIdentifier: "MyCellID")
, а затем вы можете использовать более новый API для удаления его из очереди
let cell = tableView.dequeueReusableCell(withIdentifier: "MyCellID", for: indexPath)
и его вообще не нужно разыгрывать.
Если вы хотите быть действительно умным, добавьте статическое свойство в ячейку клиента и используйте его для идентификатора ячейки:
class MyCustomCell: UITableViewCell {
static let cellID = "cellIDString" //can be anything as it's never seen
// all the existing code...
}
и затем использовать его как
MyCustomCell.cellID
всякий раз, когда необходим идентификатор ячейки. Это избавляет от строковых литералов, помогает удобочитаемости и устраняет ошибки опечаток.