2013-06-14 2 views
0

У меня есть приложение для iPad, в котором мне нужно отправить некоторые данные на сервер, и если получить ответ успеха, данные будут удалены из моей папки кэша. В настоящее время я использую asihttp network queue для этого и отлично работаю в одном диспетчере представлений. Но на самом деле я хочу обработать отправку с помощью приложения через не один диспетчер представлений и ответ процесса. В настоящее время, когда я перехожу к следующему контроллеру представления, мне нужно остановить networkqueue. Есть ли способ сделать это как поток backgrond, любые образцы могут быть очень оценены.Ответные данные, отправляемые обратно на землю

+0

PLease следует помнить, что 'ASIHTTP' больше не поддерживается и имеет некоторые ошибки. если возможно, вам следует переключиться на другую структуру, такую ​​как 'AFNetworking'. – rckoenes

ответ

0

Прежде всего, вам необходимо перейти к более обновленной структуре, поскольку ASIHTTP больше не поддерживается. Я предлагаю вам посмотреть на AFNetworking для этой цели. Эта структура позволяет выполнять ваши запросы с использованием подклассов NSOperation, таких как AFJSONRequestOperation. NSOperations можно отменить. Имейте в виду, что отмена объекта NSOperation может не произойти немедленно, если она уже началась. Более того, для лучшей производительности, наилучшей практики и множества других действительно хороших причин вам следует использовать объект NSOperationQueue для управления вашими запросами. AFNetworking предоставляет удобную очередь для использования (рекомендуется), но вы также можете создать свою собственную.

0

Вы можете использовать NSURLConnection в сочетании с блоками GCD для запуска процесса в отдельном потоке.

dispatch_queue_t downloadQueue = dispatch_queue_create("attendanceLoader", nil); 
dispatch_async(downloadQueue, ^{ 
    //YOUR NETWORK CALL HERE 
    dispatch_async(dispatch_get_main_queue(), ^{ 
     //AFTER NETWORK CALL IS COMPLETE 
     //DELETE CACHE HERE 

    }); 

});//end of GCD 
Смежные вопросы