У меня есть некоторые трудности с настройкой правильной конфигурации относительно метода sendAsynchronousRequest:queue:completionHandler:
(класс NSURLConnection
).
Мой сценарий следующий:
Я создал одноэлементный класс, который управляет разными NSURLConnection
. Этот одноэлементный экземпляр имеет NSOperation Queue
(называемый downloadQueue
), который делает запрос к веб-серверу и извлекает строковый путь (1). После этого путь используется для загрузки файла на веб-сервере (2). Наконец, когда файл был правильно загружен, мне нужно обновить пользовательский интерфейс (3).
Я разобрался только с первым запросом: тот, через который я могу скачать путь. Не могли бы вы предложить мне способ выполнить два других шага?
Несколько вопросов здесь:
очередь загрузки (
downloadQueue
) не является основной, можно ли в этой очереди открыть новый NSURLConnection? Другими словами, это правильно? (См. комментарии во фрагментах кода)если предыдущий вопрос правильный, как я могу получить основную очередь и обновить пользовательский интерфейс?
Вот фрагмент кода, который я использую для выполнения первого шага, где downloadQueue
— это переменная экземпляра, которую можно получить с помощью методов доступа (@property
/@synthesized
);
// initializing the queue...
downloadQueue = [[NSOperation alloc] init];
// other code here...
[NSURLConnection sendAsynchronousRequest:urlRequest queue:[self downloadQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) {
if([data length] > 0 && error == nil) {
// here the path (1)
// how to perform a second connection?
// what type of queue do I have to use?
}
}];