我正在尝试更新managedObject
。我已经阅读到每个managedObject
都具有属性objectID
,并且已经创建了一个用于更新对象的函数。我正在尝试使用谓词
objectID
获取对象
但是我得到一个错误:
由于未捕获的异常而终止应用程序 'NSInvalidArgumentException',原因:在以下位置找不到'keypath objectID 实体'
似乎我无权访问此属性?
下面是我的功能代码。
func updateNote(noteToUpdate: NoteMO) {
let managedContext = CoreDataManager.sharedManager.persistentContainer.viewContext
let fetchRequest: NSFetchRequest<NoteMO> = NoteMO.fetchRequest()
fetchRequest.predicate = NSPredicate(format: "objectID = %@", "\(noteToUpdate.objectID)")
do{
let foundedObject = try managedContext.fetch(fetchRequest)
let objectUpdate = foundedObject[0] as! NoteMO
objectUpdate.setValue(noteToUpdate.name, forKey: "name")
objectUpdate.setValue(noteToUpdate.text, forKey: "text")
do {
try managedContext.save()
} catch {
print(error.localizedDescription)
}
} catch {
print(error.localizedDescription)
}
}