То, что вы хотите сделать, это отсортировать NSArray перед тем, как пытаться его прочитать.Существует много вариантов сортировки NSArray, большинство из которых включают создание собственного метода сортировки.Вы делаете что-то вроде:
[productDetailList sortedArrayUsingFunction:intSort context:NULL];
Это будет использовать ваш метод сравнения, который вы укажете.Метод сравнения используется для сравнения двух элементов одновременно и должен возвращать NSOrderedAscending, если первый элемент меньше второго, NSOrderedDescending, если первый элемент больше второго, и NSOrderedSame, если элементы равны.Каждый раз, когда вызывается функция сравнения, ей передается контекст в качестве третьего аргумента.Это позволяет основывать сравнение на каком-то внешнем параметре, например, учитывает ли сортировка символов регистр или регистр, но это не имеет значения в вашем случае.Функция, которую вы должны реализовать, будет выглядеть следующим образом:
NSInteger intSort(id num1, id num2, void *context)
Для получения дополнительной информации о вышеописанном методе взгляните на документацию , в которой приведен пример.
Таким образом, вы можете сортировать массив таким образом или у вас всегда есть выбор сортировки массива каждый раз, когда вы что-то добавляете.Поэтому каждый раз, когда вы добавляете объект, вы выполняете сортировку самостоятельно и обязательно размещаете его в правильном месте, чтобы массив всегда был отсортирован.
В зависимости от того, что вы хотите, я бы сказал, что массив постоянно сортируется наВремя вставки - лучший вариант, поэтому вам не нужно тратить время на построение представления путем сортировки массива.Сделать это так просто: каждый раз, когда вы вводите что-то в массив, вы перебираете массив, пока не найдете объект с ценой, большей той, которую вы хотите ввести, а затем вставляете объект в том месте, гдезапись.