Базовые данные: наблюдение за всеми изменениями на объекте определенного типа - PullRequest
1 голос
/ 03 января 2011

Я хотел бы получать уведомления всякий раз, когда объект определенного типа добавляется / изменяется / удаляется. Я знаю, что это возможно, добавив наблюдателя к managedObjectContext, но затем я должен искать три набора, которые возвращаются, чтобы увидеть, содержат ли они объект этого типа. Я мог бы использовать filteredSetUsingPredicate, но кажется неэффективным выполнять операцию O (n) три раза каждый раз, когда происходит изменение. Есть ли еще более эффективный способ сделать это?

1 Ответ

5 голосов
/ 03 января 2011

Это кажется неэффективным?На основании каких испытаний и наблюдений?Как вы думаете, NSArrayController работает (подсказка - прочитайте о привязках какао)?:-) Конечно, с типом хранилища SQLite вы получаете фильтрацию в базе данных для выборок, но как насчет изменений в памяти объектов?

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...