Ich benutze ASINetworkQueue, um zwei Anfragen zu senden, die sich in einer Warteschlange befinden. Mein Problem ist, dass ich keine Benachrichtigungen erhalten kann, wenn eine Anfrage fehlschlägt/erledigt ist.ASIHTTPRequest: Delegaten von mehreren Anfragen innerhalb einer Netzwerkwarteschlange empfangen
Code:
[networkQueue cancelAllOperations];
[networkQueue setShowAccurateProgress:YES];
[networkQueue setUploadProgressDelegate:self.progressIndicator];
[networkQueue setDelegate:self];
[networkQueue setQueueDidFinishSelector:@selector(queueDidFinish)];
NSURL *urlAttachment = [NSURL URLWithString:@"http://localhost/test1.xml"]];
ASIFormDataRequest *requestFile = [[[ASIFormDataRequest alloc] initWithURL:urlAttachment] autorelease];
[requestFile setFile:filePath forKey:@"attachment[test]"];
[requestFile setDidFailSelector:@selector(test1WentWrong)];
[requestFile setDidFinishSelector:@selector(test1Done)];
[networkQueue addOperation:requestFile]; //queue is an NSOperationQueue
NSURL *url = [NSURL URLWithString:@"http://localhost/test2.xml"]];
ASIFormDataRequest *request = [[[ASIFormDataRequest alloc] initWithURL:url] autorelease];
[request setPostValue:test.filename forKey:@"filename[test]" ];
[request setDidFailSelector:@selector(test2WentWrong)];
[request setDidFinishSelector:@selector(test2Done)];
[networkQueue addOperation:request]; //queue is an NSOperationQueue
[networkQueue go];
test1WentWrong, test1Done, test2WentWrong werden test2Done nicht genannt. Obwohl die Anfrage läuft und queueDidFinish wird aufgerufen.
Ben, vielen Dank für Ihre Antwort. Ich war blind ;-) Der Delegierte funktionierte perfekt. Danke für solch einen großartigen Wrapper wie ASIHTTPRequest. Es ist sehr schön und praktisch zu bedienen. Ich mag das. – Stefan
@Stefan Ich bin auch mit Ihrem Problem konfrontiert.und nicht in der Lage, es zu beheben.Können Sie bitte aktualisieren Sie Ihre Antwort in der Frage.Vielen Dank – Jeff