2012-06-24 29 views
0

对不起,我觉得有点愚蠢,但即时通讯实施下面的代码从服务器下载多个文件时遇到了困难。我已经设置了MultipleDownload.h和MultipleDownload.m文件作为我的应用程序中的一个新的Objective-C类。但不知道如何从我的updateView.m调用它来执行文件下载。按照说明说,我需要初始化并开始下载以下行。我不知道在哪里放置该代码开始从网址下载文件。我是否必须在该MultipleDownload.m代码中设置一个方法,并从另一个对象(updateView.m)调用该方法来启动下载?或者我将这些行放入(updateView.m)中的某个方法中?我诚实地尝试了两种方式,出于某种原因,我不断收到错误,它说这些网址。如果我把它放在updateView.m中,它表示self.urls和self.downloads是未声明的标识符。我试图在我的updateView.m中声明NSMutableArray * url和MultipleDownload *下载,它看起来也没有工作。任何输入将不胜感激。如何实现多个下载代码目标c

的MultipleDownload.m和MultipleDownload.h代码位于GitHub上: http://github.com/leonho/iphone-libs/tree/master

要初始化并开始下载:

self.urls = [NSMutableArray arrayWithObjects: 
    @"http://maps.google.com/maps/geo?output=json&q=Lai+Chi+Kok,Hong+Kong", 
    @"http://maps.google.com/maps/geo?output=json&q=Central,Hong+Kong", 
    @"http://maps.google.com/maps/geo?output=json&q=Wan+Chai,Hong+Kong", 
    nil]; 
self.downloads = [[MultipleDownload alloc] initWithUrls: urls]; 
self.downloads.delegate = self; 

回答

1

你要做的就是在updateView.h

创建@properties的网址(类型NSMutableArray)和下载(类型MultiDownload)

然后在updateView.m您添加这些功能

//Function to start download 
- (void) startDownload 
{ 
    self.urls = [NSMutableArray arrayWithObjects: 
       @"YourURLS", 
       @"YourURLS", 
       @"YourURLS", 
       nil]; 
    self.downloads = [[MultipleDownload alloc] initWithUrls: urls]; 
    self.downloads.delegate = self; 
} 

//download finished for 1 item 
- (void) didFinishDownload:(NSNumber*)idx { 
    NSLog(@"%d download: %@", [idx intValue], [downloads dataAsStringAtIndex: [idx intValue]]); 
} 

//download finished for all items 
- (void) didFinishAllDownload { 
    NSLog(@"Finished all download!"); 
    [downloads release]; 
} 

我也建议,如果你有问题的理解self.urls和self.downloads阅读有关目标C和属性一些更多的信息,运气好的话

+0

谢谢您的快速答复,这是有效的。正如我所说,我曾尝试过这样做,但它没有工作,这是因为我拿着我的笔记本电脑工作,并忘记我没有任何互联网连接 - 而试图从互联网上下载文件。感谢你的回答。 – Mike

+0

欢迎您:) –