Iphone 在tabBar应用程序中下载多首歌曲时出现问题

Iphone 在tabBar应用程序中下载多首歌曲时出现问题,iphone,ios4,uitabbarcontroller,Iphone,Ios4,Uitabbarcontroller,我有一个tabbar应用程序,在第一个tab中我有一个webView,所以当用户打开网站并准备下载一些歌曲mp3格式时,它会推送另一个视图,从用户那里获取标题 给出标题后,我只需将tabbarSelectController更改为歌曲的一个标题 下载开始并显示在选项卡栏上选定的索引1处。当我将选项卡更改为所选索引0并选择另一首歌曲进行下载,然后再次返回到所选索引1第一次下载停止和第二次下载继续 因此,我想下载多首歌曲,但不知道如何在这种情况下做到这一点,因为用户动态添加歌曲我也看到了ASINtw

我有一个tabbar应用程序,在第一个tab中我有一个webView,所以当用户打开网站并准备下载一些歌曲mp3格式时,它会推送另一个视图,从用户那里获取标题

给出标题后,我只需将tabbarSelectController更改为歌曲的一个标题 下载开始并显示在选项卡栏上选定的索引1处。当我将选项卡更改为所选索引0并选择另一首歌曲进行下载,然后再次返回到所选索引1第一次下载停止和第二次下载继续


因此,我想下载多首歌曲,但不知道如何在这种情况下做到这一点,因为用户动态添加歌曲我也看到了ASINtworkQueue,但不知道它是如何工作的,
ASINtworkQueue
只是
NSOperationQueue
的一个子类,它的作用是,创建一个请求对象队列,例如,您可以有10个请求等待,每次处理5个请求,当一个请求完成时,队列中的另一个请求变为活动

在您的情况下,拥有一个请求队列当然是有帮助的,但是您还没有粘贴任何关于您现在如何处理请求的代码。所以我要给你们一个“一般概念”来说明应该怎么做:

首先,我假设您已经知道如何识别用户何时下载歌曲,并获得文件的URL。如果没有。也

让我们添加一个处理下载的对象,例如DownloadManager:

#import "ASINetworkQueue.h"
#import "ASIHTTPRequest.h"

@interface DownloadManager : NSObject <ASIHTTPRequestDelegate>
{
    ASINetworkQueue *requestQueue;
}

+ (DownloadManager*)sharedInstance;
- (void)addDownloadRequest:(NSString*)URLString;
完成所有这些操作后,现在您可以添加下载请求,只需执行以下操作:

DownloadManager *manager = [DownloadManager sharedInstance];
[manager addDownloadRequest:MyUrl];

第一个选项卡会将项目添加到
下载管理器中
,另一个选项卡会在下载完成或当前状态时听到。我没有将其添加到代码中,因为这取决于您如何执行这些操作。它可以是一个自定义委托方法(即
-(void)DownloadManager:(DownloadManager*)DownloadManager didfishdownloadRequest:(ASIHTTPRequest*)request
),或者传递请求的当前委托,或者使用。

我将以不同的方式建议它

尝试将歌曲下载代码放在不同的类中。Iphone O.S.将自动为该类的每个对象启动新连接。现在两个下载可以同时继续


它工作得很漂亮。我已经看过了。

不错,但是我们如何在progressbar中显示进度,然后在tableView中显示其他表呢?。如果用户一次添加一个请求,并且正在下载过程中,他添加了另一个请求,那么会发生什么?你可以在后台线程中下载songgs,因此,如果出现另一个操作,您需要将其排队,直到第一个操作使用nsoperation完成……因此,您需要序列化操作。@lak在Iphone中有它的一些教程链接吗??
DownloadManager *manager = [DownloadManager sharedInstance];
[manager addDownloadRequest:MyUrl];