通过objectID获取managedObject

时间:2019-02-27 08:11:43

标签: ios swift nsmanagedobject

我正在尝试更新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)
    }
}

0 个答案:

没有答案
相关问题