2009-10-28 2 views
0

Я работаю над некоторыми базовыми функциями ведения журнала/истории для приложения iPhone Core Data. Я хочу поддерживать максимальное количество элементов истории.Любые советы или рекомендации по добавлению нового элемента в историю при сохранении максимального количества элементов?

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

Итак, вопросы:

  • Какой способ лучше? Есть ли еще лучший способ сделать это, что я не рассматриваю?
  • Сколько предметов было бы разумным максимумом? История используется для автозаполнения текстового поля, поэтому большее количество предметов означает лучшее удобство использования, если только количество предметов не настолько велико, что оно замедляет работу.

Спасибо!

ответ

1

Какой бы метод не был проще реализовать, он правильный. Вы не должны беспокоиться о более эффективной/более сложной реализации, если это не докажет, что это необходимо.

Если эти объекты имеют отношение ко многим, я бы использовал связь для управления максимальным числом. (Замените add<Whatever>Object: и удалите посторонние предметы).

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

0

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

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

Помните, преждевременная оптимизация является корнем всего программирования зла. Это и разногласия в маркетинге.

Смежные вопросы