Итак, я работаю над этим приложением, которое запрашивает и получает контент веб-сервиса для iPhone.Проблема, с которой я сталкиваюсь, заключается в следующем: когда я первоначально запрашиваю данные, они создаются как независимый поток, поэтому приложение не перестает отвечать на запросы из-за медленной работы сети.Это означает, что если пользователь уходит с текущей страницы до того, как эти данные заканчивают загрузку, могут произойти непредвиденные ситуации.
Мне удалось сузить проблемные случаи до одной относительно простой: у меня есть несколько вложенных таблиц, так что если пользователь переходит в таблицу «Сообщения», которая иногда может занять некоторое время для загрузки,затем сразу же вернитесь назад и выберите другой набор сообщений для просмотра; предыдущий набор сообщений заканчивается загрузкой, поскольку он все еще находится в очереди.
Вот что я пробовал:
1) Я пытался отменить операции, но это бесполезно, потому что, поскольку я разрешаю только одну операцию в очереди, она сразу срабатывает
2) Я попытался проверить, что получатель данных совпадает, но это не работает, потому что фактический объект таблицы находится между двумя выборами, ему просто нужен другой набор данных.
У кого-нибудь есть общие предложения по программированию о том, как решить эту хитрую проблему с многопоточностью?
В примечании для iPhone: если бы я мог просто помешать пользователю вернуться из таблицы сообщений, у меня не было бы этой проблемы, потому что они в основном были бы заблокированы в этом представлении до тех пор, пока данныезакончила загрузку.
Спасибо!