Я довольно новичок в Core Data, просмотрел множество руководств и форумов и не нашел изящного решения моей проблемы:Установка значения в одном объекте программно из другого объекта. Основные вопросы с данными
У меня есть три объекта в моей модели: Worker, Task , и SubTask. Каждый из них имеет отношение «многие» к сущности под ним и к одному обратному. У Работника много Заданий, каждая Задача имеет много подзадач, каждый SubTask имеет один parentTask, и каждая Задача имеет одного Рабочего. SubTask имеет атрибут startTime, который устанавливается в текущее время в методе newObject и кнопку, которая запускает метод endSubTask в моем классе SubTaskArrayController. endSubTask вычисляет время между startTime и теперь и устанавливает это значение для атрибута SubTask timeWorked. Все идет нормально. Проблема:
Каков наилучший способ получить атрибут totalTimeWorked выбранной задачи, чтобы обновить себя?
Когда я пытаюсь что-то вроде
[currentSubTask setValue:newTotalTime forKey:@"parentTask.totalTimeWorked"];
я получаю:
[SetValue: forUndefinedKey]: сущность подзадачи не значение ключа кодирования совместимый для ключа parentTask .totalTimeWorked.
Как получить доступ к атрибутам parentTask выбранного в данный момент SubTask?
D'oh. Я подумал, что это было что-то основное, чего я не видел. Благодарю. Является ли это обычной практикой или мне нужно изучить решение (NSFetchRequests?) Для задачи, чтобы вычислить ее totalTimeWorked? – jslanger
Вы можете использовать '@ sum',' @ count' и друзей в ключевых путях для выполнения таких вычислений. Я бы просто сохранил продолжительность в каждой подзадаче, а затем суммировал их, а не пытался хранить их в задаче напрямую. Для простых вещей, подобных этому, вам вообще не нужно «NSFetchRequest». –
«parentTask.subTask. @ Sum.timeWorked» работает отлично. Благодарю. – jslanger