iPhone SDK - вопрос о поисковой теме - PullRequest
1 голос
/ 03 марта 2010

Это вопрос высокого уровня типа «как решить проблему такого типа», а не вопрос «почему мой код не компилируется».

У меня естьпанель поиска в приложении для iPhone, которая хорошо ищет мои данные.Тем не менее, у меня поиск срабатывает (вызывается handleSearchForTerm) после каждого нажатия клавиши.Это создает некоторую задержку.

Мне нравится идея, что результаты поиска появляются автоматически, но мне не нравится, что для больших наборов данных, сам процесс поиска прерывает ввод пользователя.

Isэто что-то, что я не могу исправить, кроме того, чтобы ускорить процесс поиска?Или есть лучший способ справиться с этим?

Одна мысль состоит в том, что я хотел бы иметь возможность запускать поиск, скажем, через 500 мс после нажатия клавиши (если только в это время не было еще одного нажатия клавиши), затем сбросьте).Это возможно?

Спасибо за любую помощь.

1 Ответ

1 голос
/ 03 марта 2010

Вы можете использовать executeSelector: withObject: afterDelay , чтобы вызвать процедуру поиска после задержки 500 мс

РЕДАКТИРОВАТЬ (после вашего комментария):

Вы можете использовать cancelPreviousPerformRequestsWithTarget: selector: object: , чтобы отменить последующие вызовы процедуры поиска

Конечно, вам понадобится какой-то механизм, чтобы определить, выполняется ли в данный момент процедура поиска. Используйте семафоры для этого.

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