使用核心数据,是否有可能在获取期间更改实体属性的值?

时间:2018-11-07 14:39:41

标签: ios swift core-data nsfetchrequest

我在聊天应用程序中使用coreData。每当我在聊天室中获取所有消息时,我都希望将每个消息的messageViewed bool属性设置为true。

当然,我可以先获取一个房间中的所有消息,然后遍历每条消息并将messageViewed属性设置为true,以实现此目的,但是我正在寻找一种更有效的方法来实现这一目标。

我记得在某处读过,在获取期间可能有可能为直接在获取请求中获取的所有项目定义或更改实体属性的值,但我不记得在哪里阅读或如何实现它。

1 个答案:

答案 0 :(得分:0)

awakeFromFetch是您正在谈论的方法。

但是要小心它的行为:

  

围绕此方法显式禁用了托管对象上下文的更改处理,因此您可以使用公共设置器来建立瞬时值和其他缓存,而不会弄脏对象或其上下文。因此,由于此方法将不设置反函数,因此不应该在此方法中修改关系。