Я занимаюсь рефакторингом проекта, который включает в себя передачу множества массивов. В настоящее время каждый метод, который возвращает массив, сортирует его прямо перед возвратом. Это не идеально по нескольким причинам - много дублированного кода, неэффективно сортировать массив два или три раза, и слишком легко написать новую функцию, но забыть отсортировать массив перед его возвратом.
Я ищу способ гарантировать, что массив всегда хранится в алфавитном порядке. Моя текущая мысль - создать подкласс NSMutableArray
и / или NSArray
для создания класса массива в алфавитном порядке. Мне нужно переопределить все методы, которые создают или модифицируют массив, чтобы вызвать super
, а затем отсортировать себя.
Это звучит разумно, или есть лучший подход?
EDIT:
Поскольку проблемы производительности были упомянуты, я включу соответствующую информацию из моего проекта. Скорость не важна. Весь процесс занимает всего несколько секунд, и инструмент используется только очень часто. Так что простота и очевидная правильность важнее.
Кроме того, вариант использования для массивов является специфическим. Когда возвращается массив, вызывающая сторона всегда обращается к каждому элементу в массиве хотя бы один раз.