ASIHTTP:其他线程运行时的addOperation

时间:2010-03-12 04:59:44

标签: iphone

我有一个项目使用ASIHTTP来从网站上下载多个文件

当我添加新请求时:

[networkQueue cancelAllOperations];
[networkQueue  setDownloadProgressDelegate:a];
[networkQueue  setDelegate:self];
[networkQueue   setRequestDidFinishSelector:@selector(requestDone:)];

NSURL *url = [NSURL URLWithString:@"http://www.google.com"];
ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
[request setDelegate:self];
[request startAsynchronous];
[networkQueue  addOperation:request];

[networkQueue  go];

报道:

*由于未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:'* - [ASINetworkQueue addOperation:]:操作正在执行且无法排队'

当其他人正在运行时,我似乎无法添加新请求。

欢迎任何评论

由于

InterDev中

2 个答案:

答案 0 :(得分:3)

如果您使用的是网络队列,则在排队之前无法启动该操作。不要调用startAsynchrnous,只需将操作排入队列,网络队列将在它出列时启动它。几乎就是你的错误信息所说的;)

答案 1 :(得分:1)

只需删除[request startAsynchronous];,它就可以正常使用。

希望这会有所帮助。

感谢。