Поддерживает ли ASIHTTP многопоточность? Если да, я надеюсь, что каждая ветка ссылается на aUIProgressbar, как я могу построить коды?
Спасибо
InterDev
Юпс, ASIHttpRequest может обрабатывать больше, чем по запросу одновременно. См. Справку , документацию и обратите внимание на эту часть.
Использование очереди Этот пример делает то же самое еще раз, но мы создали NSOperationQueue для нашего запроса. Использование NSOperationQueue (или ASINetworkQueue, см. Ниже) дает вам больше контроля над асинхронным Запросы. При использовании очереди только определенное количество запросов может выполняться в в то же время. Если вы добавите больше запросы, чем в очереди свойство maxConcurrentOperationCount, запросы будут ждать других закончить, прежде чем они начнут. (IBAction) grabURLInTheBackground: (идентификатор) отправитель {если (! [собственная очередь]) { [self setQueue: [[[NSOperationQueue alloc] init] autorelease]]; } NSURL * url = [NSURL URLWithString: @ "http://allseeing -i.com "]; ASIHTTPRequest * запрос = [ASIHTTPRequest requestWithURL: url]; [request setDelegate: self]; [запрос setDidFinishSelector: @selector (requestDone :)]; [запрос setDidFailSelector: @selector (requestWentWrong :)]; [[собственная очередь] addOperation: запрос]; // очередь является NSOperationQueue} (void) requestDone: (ASIHTTPRequest *) request {NSString * response = [request responseString]; } (аннулируются) requestWentWrong: (ASIHTTPRequest *) запрос {NSError * error = [ошибка запроса]; } В приведенном выше примере «очередь» сохранил свойство NSOperationQueue наш контроллер. Мы настраиваем пользовательские селекторы, которые будет вызван, когда запрос успешно или неудачно. Если вы не установили эти значения по умолчанию (requestFinished: и requestFailed :) будет использоваться, как в предыдущем примере. Обработка успеха и неудачи для несколько запросов Если вам нужно справиться с успехом и провал на многих различных типах запрос, у вас есть несколько вариантов: Если все ваши запросы имеют одинаковый широкий тип, но вы хотите Различая их, вы можете установить свойство userInfo NSDictionary каждый запрос с вашими собственными данными что вы можете прочитать в вашем законченном / не удалось делегировать методы. Если вам нужно справиться с успехом и неудачей в совершенно другом способ для каждого запроса, установить разные setDidFinishSelector / setDidFailSelector для каждого запроса Для более сложных ситуаций или где вы хотите разобрать ответ на заднем плане создайте минимальный подкласс ASIHTTPRequest для каждого тип запроса и переопределение requestFinished: и failWithProblem:.
Использование очереди
Этот пример делает то же самое еще раз, но мы создали NSOperationQueue для нашего запроса.
Использование NSOperationQueue (или ASINetworkQueue, см. Ниже) дает вам больше контроля над асинхронным Запросы. При использовании очереди только определенное количество запросов может выполняться в в то же время. Если вы добавите больше запросы, чем в очереди свойство maxConcurrentOperationCount, запросы будут ждать других закончить, прежде чем они начнут.
(IBAction) grabURLInTheBackground: (идентификатор) отправитель {если (! [собственная очередь]) { [self setQueue: [[[NSOperationQueue alloc] init] autorelease]]; } NSURL * url = [NSURL URLWithString: @ "http://allseeing -i.com "]; ASIHTTPRequest * запрос = [ASIHTTPRequest requestWithURL: url]; [request setDelegate: self]; [запрос setDidFinishSelector: @selector (requestDone :)]; [запрос setDidFailSelector: @selector (requestWentWrong :)]; [[собственная очередь] addOperation: запрос]; // очередь является NSOperationQueue}
(void) requestDone: (ASIHTTPRequest *) request {NSString * response = [request responseString]; }
(аннулируются) requestWentWrong: (ASIHTTPRequest *) запрос {NSError * error = [ошибка запроса]; }
В приведенном выше примере «очередь» сохранил свойство NSOperationQueue наш контроллер.
Мы настраиваем пользовательские селекторы, которые будет вызван, когда запрос успешно или неудачно. Если вы не установили эти значения по умолчанию (requestFinished: и requestFailed :) будет использоваться, как в предыдущем примере.
Обработка успеха и неудачи для несколько запросов
Если вам нужно справиться с успехом и провал на многих различных типах запрос, у вас есть несколько вариантов:
Надеюсь, это поможет.
Madhup
Проверьте образец кода здесь: http://allseeing -i.com / ASIHTTPRequest / Как использовать
Он поддерживает асинхронные запросы (многопоточные), и вы можете использовать ASINetworkQueue для отслеживания их выполнения.