Я пытаюсь нажать на UITableView, чтобы перейти к новому подробному виду. Мой оригинальный код был основан на учебнике, в котором была создана модель данных для хранения значений, в которой содержится класс Bonus.
В моем основном UITableView у меня было следующее для моего prepare(for: sender)
:
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
super.prepare(for: segue, sender: sender)
switch (segue.identifier ?? "") {
case "ShowDetail":
guard let bonusDetailViewController = segue.destination as? BonusSubmissionViewController else {
fatalError("Unexpected destination: \(segue.destination)")
}
guard let selectedBonusCell = sender as? BonusTableViewCell else {
fatalError("Unexpected sender: \(sender!)")
}
guard let indexPath = tableView.indexPath(for: selectedBonusCell) else {
fatalError("The selected cell is not being displayed by the table")
}
let selectedBonus = bonuses[(indexPath.row)]
bonusDetailViewController.bonus = selectedBonus
case "ShowSettings":
os_log("Going to settings.", log: OSLog.default, type: .debug)
default:
fatalError("Unexpected Segue Indentifier; \(segue.identifier!)")
}
}
Приведенный выше код работал, когда я вручную загружал бонусные данные. Теперь, когда я использую файл JSON для заполнения UITableView (и для получения всех исходных данных), я изменил let selectedBonus
, чтобы использовать мой новый jBonuses[(indexPath.row)]
, как теперь заполняется мой UITableView (с использованием файла JSON) , Когда я пытаюсь построить это, я получаю сообщение об ошибке:
Невозможно присвоить типу тип BonusTableViewController.Bonuses.
'Bonus?
в строке кода, которая говорит bonusDetailViewController.bonus = selectedBonus
Не думаю, что мне нужно менять модель данных Bonus.swift, поскольку метки и структуры не были изменены, но я не могу понять, что пытается сказать мне эта ошибка, тем более что мой UITableView загружается правильно и выглядит так же, как и до того, как я использовал метод на основе JSON.
Надеюсь, это имеет смысл.