Я много искал в SO, но не могу найти правильный ответ на свой вопрос.
Здесь проблема:
Я выясняю правильный механизм для отправки нескольких запросов на загрузку в подкласс NSOperation
. В частности, этот класс выполняет две различные операции в своем методе main
:
- Сначала он получает данные из локальной базы данных
- Затем он отправляет составленные данные на веб-сервер
Поскольку выполнение этих двух операций может занять некоторое время, я заключил их, как уже было сказано, в NSOperation
.
Для загрузки данных я решил принять шаблон синхронизации (мне нужно синхронизировать мое приложение с количеством запросов на загрузку, которые были успешно отправлены на веб-сервер).
Чтобы выполнить аналогичную загрузку, я использую ASIHttpRequest в режиме синхронизации, как показано ниже.
for (int i = 0; i < numberOfUploads; i++) {
// 1-grab data here...
// 2-send data here
ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
[request startSynchronous];
NSError *error = [request error];
if (!error) {
int response = [request responseStatusCode];
if(response == 200)
uploads++;
}
}
Итак, мои вопросы:
- это правильное решение для загрузки данных на веб-сервер?
- допустимо ли создавать
ASIHTTPRequest *request
в фоновом потоке?
- мне нужно использовать асинхронный шаблон? Если да, то как?
Примечание Я использую ASIHttpRequest для запросов на синхронизацию, но я думаю, что тот же шаблон можно применить с NSUrlConnection
class до
sendSynchronousRequest:returningResponse:error:
Заранее спасибо.