Я столкнулся с проблемой, которую не могу решить сам. Я попробовал Интернет без удачи.
Я все еще довольно новичок в Swift и кодировании, и сейчас следую руководству, помогающему мне создать приложение.
К сожалению, насколько я понимаю, приложение было написано для Swift 3 и вызывает у меня некоторые проблемы, так как я использую Swift 4.
У меня есть строки, которые дают мне это предупреждение:
Строковая интерполяция создает описание отладки для необязательного значения; Вы хотели сделать это явным?
Используйте 'String (description :)), чтобы отключить это предупреждение. Исправить
Укажите значение по умолчанию, чтобы избежать этого предупреждения. Fix
Однако, когда я нажимаю одно из решений Xcode, у меня возникает другая проблема.
Если я использую первое исправление, приложение вылетает, и я получаю следующее сообщение:
Поток 1: фатальная ошибка: неожиданный идентификатор перехода;
Если я использую второе исправление, мне нужно назначить значение по умолчанию. И я не знаю, что это должно быть.
Весь отрывок кода выглядит следующим образом.
Это строка, начинающаяся с guard let selectedMealCell
и последняя после default:
, которая вызывает проблемы.
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
super.prepare(for: segue, sender: sender)
switch(segue.identifier ?? "") {
case "AddItem":
os_log("Adding a new meal.", log: OSLog.default, type: .debug)
case "ShowDetail":
guard let mealDetailViewController = segue.destination as? MealViewController else {
fatalError("Unexpected destination: \(segue.destination)")
}
guard let selectedMealCell = sender as? MealTableViewCell else {
fatalError("Unexpected sender: \(sender)")
}
guard let indexPath = tableView.indexPath(for: selectedMealCell) else {
fatalError("The selected cell is not being displayed by the table")
}
let selectedMeal = meals[indexPath.row]
mealDetailViewController.meal = selectedMeal
default:
fatalError("Unexpected Segue Identifier; \(segue.identifier)")
}
}