Какой метод проще реализовать, тот самый правильный. Вы не должны беспокоиться о более эффективной / более сложной реализации, если она не доказывает, что она необходима.
Если бы эти объекты имели отношение ко многим, то я бы использовал это отношение для управления максимальным числом. (Переопределите add<Whatever>Object:
и удалите посторонние элементы).
Если вы просто извлекаете их, тогда это действительно ваша единственная возможность отфильтровать их. Если вы используете NSArrayController
, вы можете реализовать подкласс, который определяет, когда добавляются новые объекты, и отбирает дополнительные.