Как предотвратить несколько кликов, генерирующих несколько NSOperations

Я воспользовался отличным советом Маркуса Зарры о том, как выполнять асинхронную загрузку с помощью NSURLConnection и NSOperation. Я привязал нажатие кнопки к этому NSOperationg.

Вопрос: как я могу предотвратить спам пользователем кнопки и отстрел многих NSOperations, выполняющих одну и ту же загрузку снова и снова.

У меня две проблемы:

а) Установка глобальной переменной, вероятно, не очень хорошая идея. Что произойдет, если приложение будет приостановлено с включенным флагом?

б) Отключение кнопки при первом нажатии, наверное, тоже плохая идея. Если что-то пойдет не так с моим кодом, кнопка может остаться отключенной.

Я действительно не понимаю, что произойдет, если приложение будет приостановлено в середине работы, но в основном я хотел бы знать «философию» этого.

Я думаю, что у большинства приложений ios, которые используют веб-сервисы, есть точно такая же проблема, но я не знаю, что лучше всего.

Спасибо. Я посмотрел, и это не похоже на обман. Если что, прошу прощения.


person Humble Objectivecer    schedule 08.02.2012    source источник


Ответы (1)


Один из подходов состоит в том, чтобы показать «представление загрузки», которое будет охватывать все кнопки и давать пользователю информацию о том, что что-то происходит. Это имеет те же проблемы, что и отключение кнопки: вам нужно убедиться, что вы удалили ее по завершении операции или заменить ее соответствующим сообщением, если что-то пойдет не так.

person wattson12    schedule 08.02.2012