Я одновременно загружаю некоторую информацию с сервера, и я использую NSOperatioQueue для этого же. У меня проблема. Например, если по какой-либо причине не удается выполнить операцию загрузки, я не хочу удалять эту операцию из очереди.NSOperation и NSOperationQueue
Прямо сейчас, даже если его сбой, как только он получает ответ от сервера, операция удаляется из очереди.
Есть ли способ сообщить очереди, что конкретная операция не выполнена логически и она должна содержать ее в очереди?
В моем случае я загружаю набор информации. Например, выбирая все места в округе, а затем все дома для каждого округа. Поэтому в некоторых случаях графство не может быть загружено, если пользователь не вошел в систему с действительным токеном. В этом случае сервер возвращает сообщение об ошибке. Я хочу сохранить такие элементы в очереди, чтобы снова попробовать, когда пользователь входит в приложение.
Пример кода
self.downloadQueue.maxConcurrentOperationCount = 1;
for(Campaign *campaign in campaigns)
{
isContentUpdated = false;
if(self.operation)
self.operation = Nil;
self.operation = [[DownloadOutlets alloc] initWithCampaign:campaign];
[self.downloadQueue addOperation:operation];
}
где downloadQueue является NSOperationQueue и DownloadOutlets расширяет NSOperation. Thanks
Как работают ваши операции? Покажите примеры кода. –
Что это значит? Зачем вам делать операцию в очереди, если она уже выполнила весь код (был ли он успешным или неудачным)? – micantox
В моем случае, я загружаю набор информации. Например, выбирая все места в округе, а затем все дома для каждого округа. Поэтому в некоторых случаях графство не может быть загружено, если пользователь не вошел в систему с действительным токеном. В этом случае сервер возвращает сообщение об ошибке. Я хочу держать такие предметы в очереди. – Zach