Я добавил CoreData в приложение Notes.Он сохраняет данные, удаляет их и т. Д. Теперь я застрял в редактировании уже существующих заметок.
Ну, я пытался удалить предыдущий элемент и сохранить новый, но я теперь, как это сделать в tableView, где вы можете просто "notes.remove (at: indexPath.row)", и я понятия не имею,как это сделать в другом vieController.Кроме того, я пытался удалить объект с «фильтрованным», но он не работал ни
Эта функция загружает заметки из CoreData:
func getNotes(with request: NSFetchRequest<Note> = Note.fetchRequest()) {
do {
notes = try Constants.context.fetch(request)
} catch {
print("Loading error \(error)")
}
tableView.reloadData()
}
Эта сохраняет его:
func saveNote() {
do {
try Constants.context.save()
} catch {
print(error.localizedDescription)
}
}
И я пытался добавить функцию редактирования:
func editNote() {
let editedNote = Note(context: Constants.context)
editedNote.text = noteDetailOutlet.text
dataManager.saveNote()
navigationController?.popViewController(animated: true)
callback?()
}
Вот где я выполняю переход к vc, который вносит изменения:
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
let vc = storyboard?.instantiateViewController(withIdentifier: "NoteDetailsViewController") as! NoteDetailsViewController
let note = notes[indexPath.row]
vc.passedNote = note.text ?? "Empty note"
vc.callback = { [weak self] in
if Constants.context.hasChanges {
self?.notes.remove(at: indexPath.row)
}
self?.getNotes()
}
Constants.context.hasChangesне работает, как я думал, это будет