Метод "sortedArrayHint" класса NSArray, какова цель этого метода и как он используется? - PullRequest
5 голосов
/ 11 августа 2011

Вопрос такой же, как и у заголовка. (метод "sortedArrayHint" класса NSArray, какова цель этого метода и как он используется)

Я читаю документацию, но объяснение не ясно.

Пожалуйста, объясните цель этого метода и его использование.

1 Ответ

10 голосов
/ 11 августа 2011

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

Метод -[NSArray sortedArrayHint] можно вызывать для уже отсортированного массива, чтобы получить частные внутренние данные, которые можно использовать для ускорения сортировки того же массива, учитывая, что было сделано только небольшое изменение.

Простое использование:

  1. Получить и сохранить подсказку из исходного отсортированного массива, используя -[NSArray sortedArrayHint].
  2. после небольшого изменения; прибегнуть к помощи -[NSArray sortedArrayUsingFunction:context:hint:] с сохраненной подсказкой.
  3. после большого изменения; используйте -[NSArray sortedArrayUsingFunction:context:] и получите новую подсказку.

Что такое маленькое или большое изменение - это то, что вы должны измерить с помощью инструментов.

Я никогда не использую это сам, так как я считаю более эффективным использовать собственные категории в NSArray и NSMutabelArray для отсортированных вставок, которые используют бинарный поиск, в отсортированном массиве. Мой код доступен с открытым исходным кодом здесь: https://github.com/Jayway/CWFoundation

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