Столкнулся с проблемой “домашнего задания”.
Задача в уроке: сохранить рейтинг ресторана в core data и соответственно оттуда брать инфу для вызова.
Для полей названия, тип ресторана делалось по уроку так:
// tring to get context if let context = (UIApplication.shared.delegate as? AppDelegate)?.coreDataStack.persistentContainer.viewContext { // create entity of our restaurant class in the context let restaurant = Restaurant(context: context) // set all the properties restaurant.name = nameTextField.text restaurant.location = adressTextField.text restaurant.type = typeTextField.text restaurant.isVisited = isVisited if let image = imageView.image { // as we expect to get binary data so we cast to NSData restaurant.image = UIImagePNGRepresentation(image) as NSData? } // trying save context do { try context.save() print("Сохранение удалось!") } catch let error as NSError { print("Не удалось сохранить данные \(error), \(error.userInfo)") } }
Соответственно, я аналогично решил попробовать и для рейтинга:
@IBAction func rateRestaurant(sender: UIButton) { switch sender.tag { case 0:
restRating = “bad”
// tring to get context
if let context = (UIApplication.shared.delegate as? AppDelegate)?.coreDataStack.persistentContainer.viewContext {
// create entity of our restaurant class in the context
let restaurant = Restaurant(context: context)
// set all the properties
restaurant.rating = restRating
}
// trying save context
do {
try context.save()
print(“Сохранение удалось!”)
} catch let error as NSError {
print(“Не удалось сохранить данные (error), (error.userInfo)”)
}
case 1: restRating = "good"
case 2: restRating = "brilliant"
default: break
}
performSegue(withIdentifier: “unwindSegueToDVC”, sender: sender)}
Перепробовал в итоге кучу вариантов “как мне казалось правильно”, но по итогу всегда одна и та же ошибка уже при выводе в tableview списка ресторанов (после нажатия на кнопку рейтинга):
fatal error: unexpectedly found nil while unwrapping an Optional value
Опять-таки как я понимаю, что своими действиями я затираю (удаляю) сохраненную информацию с названиями ресторанов и т.п.
Явно в моих “видениях” нарушена логина и делаю в в принципе не верно, поэтому и обращаюсь к вам. Как мне сохранить рейтинг и вывести его…?
Вот оригинальный проект из урока для наглядности:
https://yadi.sk/d/dtjF9cQ_39w2Kn