Базовые данные: заставить один атрибут загружаться раньше других - PullRequest
1 голос
/ 01 июля 2011

У меня есть некоторые переходные атрибуты в моей сущности, которые получены из одного другого переходного атрибута (вызов X).Когда я делаю выборку, кажется, что я пытаюсь загрузить все атрибуты в произвольном порядке, поэтому, если для вычисления X требуется некоторое время, другие производные атрибуты пытаются использовать X, и он равен нулю, что вызывает проблемы.

Есть ли способ заставить Core Data обеспечить загрузку одного атрибута, прежде чем другие атрибуты смогут его прочитать?Или принудительно перезагрузить другие атрибуты после того, как атрибут X завершил загрузку?Любая другая техника, которую кто-либо рекомендовал бы?Я использую это в iOS TableView при поддержке NSFetchedResultsController.

1 Ответ

0 голосов
/ 01 июля 2011

Нет, вы не можете заставить атрибуты «загружаться» по порядку, потому что атрибуты не загружаются. Вы инициализируете объекты здесь, а не читаете ячейки в процедурной базе данных.

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

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

E.g Предположим, у вас есть модель данных, которая имитирует группу людей с Person объектами. Вы хотите, чтобы поведение каждого объекта Person менялось в зависимости от того, сколько людей их. Таким образом, когда есть менее пяти, каждый человек делает «Х», если от 6 до 10, вы делаете «Y» и так далее.

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

...