Сохранить или сериализовать очередь операций AFNetworking?

С AFNetworking вы обычно ставите операции в очередь, делая следующее:

[_httpClient enqueueHTTPRequestOperation:operation];

Есть ли способ сериализовать или сохранить очередь, чтобы ее можно было возобновить после завершения работы приложения?


person Goles    schedule 26.12.2012    source источник
comment
Я думаю, вам придется пойти по пути соблюдения протокола NSCoding. Я вижу, что AFURLConnectionOperation уже делает это.   -  person shawnwall    schedule 26.12.2012
comment
Хотелось бы увидеть какой-нибудь подробный пример.   -  person Goles    schedule 26.12.2012
comment
некоторые руководства: soff.es/archiving-objective-c-objects-with-nscoding raywenderlich. ком/1914/   -  person shawnwall    schedule 26.12.2012


Ответы (1)


На самом деле, если вы посмотрите на AFURLConnectionOperation, он реализует протокол NSCoding, а файл .m отражает это, реализуя initWithCoder: и encodeWithCoder:

Хотя AFHTTPClient базовый класс также NSCoding совместим, он не сериализует саму очередь.

Но ничто не мешает вам использовать существующую кодовую базу и расширять функцию кодирования/декодирования для сериализации операций очереди в вашем собственном подклассе AFHTTPClient.

Надеюсь, это имеет смысл!

person Sash Zats    schedule 18.04.2013
comment
Обратите внимание, что AFHTTPRequestOperation приостанавливается, когда вы вызываете encodeWithCoder:! Это было большой ошибкой для меня, когда я делал это... - person Ben Gotow; 30.04.2014
comment
Кроме того, если вы ориентируетесь на iOS7+, вы можете вместо этого рассмотреть возможность использования реализации AFNetworking на основе NSURLSession. - person Sash Zats; 30.04.2014