【问题标题】:ASIHTTPRequest: Receive delegates from several requests within a network queueASIHTTPRequest:接收来自网络队列中多个请求的委托
【发布时间】:2009-06-26 14:46:16
【问题描述】:

我使用 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 被调用。

【问题讨论】:

    标签: iphone cocoa-touch http asihttprequest


    【解决方案1】:

    您需要设置单个请求的委托而不是队列。

    基本上,如果您在队列上设置了 didFinish 和 didFail 选择器,则会调用队列的委托。如果您在请求中设置它们,则会调用请求的委托(您也可以同时执行这两种操作,在这种情况下,两者都会被调用)。

    在您的情况下,您希望对两个请求使用相同的委托,但对于 didFail / didFinish 使用不同的选择器,我可以看到如果您没有设置委托,那么调用队列的委托是有意义的请求。也许我应该添加这个... :)

    【讨论】:

    • 本,非常感谢您的回答。我是盲人;-) 添加代表工作得很好。感谢您提供像 ASIHTTPRequest 这样出色的包装器。使用起来非常好用。我喜欢它。
    • @Stefan 我也遇到了您的问题。无法解决。能否请您更新问题中的答案。谢谢
    猜你喜欢
    • 1970-01-01
    • 2012-06-06
    • 2012-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-03
    • 1970-01-01
    相关资源
    最近更新 更多