Asihttprequest : 네트워크 대기열 내의 여러 요청으로부터 대의원을받습니다.

StackOverflow https://stackoverflow.com/questions/1049536

문제

Asinetworkqueue를 사용하여 대기열에있는 두 가지 요청을 보냅니다. 내 문제는 요청이 실패/완료되면 알림을받을 수 없다는 것입니다.

암호:

    [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, test2done은 호출되지 않습니다.요청이 잘 실행되고 QueuedidFinish가 호출됩니다.

도움이 되었습니까?

해결책

대기열이 아닌 개별 요청의 대의원을 설정해야합니다.

기본적으로 대기열에서 didfinish 및 didfail selectors를 설정하면 대기열의 대의원이 호출됩니다. 요청에 따라 설정하면 요청의 대의원이 호출됩니다 (두 가지 모두를 수행 할 수도 있습니다.

귀하의 경우, 두 요청에 동일한 대의원을 사용하려는 경우, DidFail / DidFinish의 다른 선택기를 사용하려면 요청에 대한 대의원을 설정하지 않은 경우 큐 대의원이 호출되는 것이 합리적 일 것입니다. 아마도 나는 이것을 추가해야한다 ... :)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top