Я думаю, что первый вопрос: что вы хотите, чтобы произошло , если пользователь нажимает после нажатия переключателя? то есть. Следует ли отменить http-запрос или важно, чтобы этот запрос попал на сервер? На данный момент я предполагаю, что вы действительно хотите отменить их, как это, по-видимому, подразумевается в вашем вопросе.
Мне посоветовали сделать
запрашивает локальные переменные вместо
переменные экземпляра
Я не уверен, что это был хороший совет - вы почти всегда хотите, чтобы запросы не были локальными переменными, чтобы вы могли справиться с такими случаями.
Для вашего случая вы можете рассмотреть возможность использования NSOperationQueue
.
Грубые шаги для этого были бы:
- Создайте NSOperationQueue в init контроллера вашего представления.
- Если вы хотите сделать http-запрос, добавьте его в очередь ASIHTTPRequest вместо вызова startAsynchronous
- В dealloc итерируйте объекты в очереди, вызывая
[request clearDelegatesAndCancel];
для каждого, а затем освобождайте очередь.
Это должно решить проблему, не требуя 13 иваров!