Используя основные данные, возможно ли изменить значение атрибута объекта во время выборки? - PullRequest
0 голосов
/ 07 ноября 2018

Я использую coreData в приложении чата. Я хочу установить для каждого сообщения атрибут messageViewed bool значение true каждый раз, когда я получаю все сообщения в чате.

Конечно, я мог бы сделать это, сначала извлекая все сообщения в комнате, а затем перебирая каждое сообщение и устанавливая атрибут messageViewed в значение true, однако я ищу более эффективный способ достижения этого.

Я помню, как где-то читал, что во время выборки может быть возможно определить или изменить значение атрибута сущности для всех элементов, извлеченных непосредственно в запросе выборки, но я не могу вспомнить, где я это читал или как это реализовать.

1 Ответ

0 голосов
/ 07 ноября 2018

awakeFromFetch - метод, о котором вы говорите.

Но будьте осторожны с его поведением:

Обработка изменений контекста управляемого объекта явно отключена для этого метода, так что вы можете использовать открытые установщики для установки переходных значений и других кэшей, не загрязняя объект или его контекст. Однако из-за этого вам не следует изменять отношения в этом методе, поскольку обратное не будет установлено.

...