iphone - ASIHTTPRequest:从网络队列中的多个请求接收委托(delegate)

标签 iphone cocoa-touch http asihttprequest

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

最佳答案

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

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

在你的例子中,你想对两个请求使用相同的委托(delegate),但 didFail/didFinish 使用不同的选择器,我可以看到如果你没有为要求。也许我应该添加这个... :)

关于iphone - ASIHTTPRequest:从网络队列中的多个请求接收委托(delegate),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1049536/

相关文章:

iphone - 来自 AVPlayer 对象的 AudioQueueLevelMeterState

iphone - 如何更改 iphone 3.0 上 UITableViewCellStyleSubtitle 单元格的字体大小

ios - 在设备锁定时从通知打开应用程序

http - 单页应用程序的简单命令行 http 服务器

c - 试图写一个代理服务器。内容长度管理问题

iPhone SDK - MapKit CoreLocation - 根据纬度和经度制作街道地址

iphone - NSOperationQueue waitUntilAllOperationsAreFinished 与 performSelectorOnMainThread

iPhone 从 iPod 应用程序获取视频

iphone - Nib 对象( subview )访问 ViewController 中的属性

c# - 上传照片并将其作为 json 对象发送