Какие-либо советы или рекомендации по добавлению нового элемента в историю при сохранении максимального общего количества элементов? - PullRequest
0 голосов
/ 29 октября 2009

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

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

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

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

Спасибо!

Ответы [ 2 ]

1 голос
/ 29 октября 2009

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

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

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

0 голосов
/ 29 октября 2009

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

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

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

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