Установка значения в одном объекте программно из другого объекта.Вопросы по основным данным
-
20-09-2019 - |
Вопрос
Я довольно новичок в Core Data, просмотрел множество руководств и форумов и не нашел элегантного решения своей проблемы:
У меня есть три объекта в моей модели:Рабочий, Задача и подзадача.Каждый из них имеет отношение "ко многим" к объекту под ним и обратное отношение "к одному".Рабочий имеет много Задач, каждая задача имеет много подзадач, каждая подзадача имеет одну родительскую задачу, и у каждой задачи есть один Рабочий.Подзадача имеет атрибут startTime, который устанавливается на текущее время в методе newObject, и кнопку, которая запускает метод endSubTask в моем классе SubTaskArrayController.endSubTask вычисляет время между startTime и now и устанавливает это значение для атрибута подзадачи timeWorked.Пока все идет хорошо.Проблема:
Каков наилучший способ заставить атрибут totalTimeWorked выбранной задачи обновиться самостоятельно?
Когда я пытаюсь сделать что-то вроде
[currentSubTask setValue:newTotalTime forKey:@"parentTask.totalTimeWorked"];
Я получаю:
[ setValue:для определенного ключа:]:сущность Подзадача не соответствует кодированию значения ключа для ключа parentTask.totalTimeWorked.
Как мне получить доступ к атрибутам родительской задачи выбранной в данный момент подзадачи?
Решение
Вы используете ключевой путь.Вы должны использовать setValue:forKeyPath:
вместо этого.