Я хотел бы обновить объект CoreData. Backgrund: Я сделал приложение, которое включает UITableView. В textLabel UITableViewCell это имя. В detailTextLabel этой ячейки есть дата, которую можно изменить/обновить. Теперь я хочу изменить эту дату.Обновить объект CoreData
Я написал следующий код:
var people = [NSManagedObject]()
func saveDate(date: NSDate) {
//1
let appDelegate = UIApplication.sharedApplication().delegate as AppDelegate
let managedContext = appDelegate.managedObjectContext!
//2
let entity = NSEntityDescription.entityForName("Person", inManagedObjectContext:managedContext)
let person = people[dateIndexPath.row]
//3
person.setValue(date, forKey: "datum")
//4
var error: NSError?
if !managedContext.save(&error) {
println("Could not save \(error), \(error?.userInfo)")
}
//5
people.append(person)
tableView.reloadData()
}
Теперь, если я запускаю этот код: Дата успешно обновляется, но ячейка, в которой дата была обновлена отображается в 2 раза. Например, если я добавил 3 ячейки и изменил дату в 3-й ячейке, теперь я получаю 4 ячейки, а 2 из них имеют один и тот же контент/дублируются.
Кто-нибудь знает, как решить эту проблему?
Спасибо за ваш ответ! Теперь дублированная ячейка больше не появляется. Но если я добавил 3 ячейки и изменил дату 3-й, дата 1-й ячейки также обновится с новой датой, которая должна быть установлена только в 3-й ячейке. Если я перезапустил приложение, все будет правильно (обновляется только 3-я ячейка). Ты знаешь почему? – user3592462
Где дата? Мне нужно больше узнать о вашем коде. – kellanburket
Хорошо, все решено. Я установил неправильное логическое значение. – user3592462