0

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

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; 
4

1 回答 1

1

你所做的是在 updateView.h

为 url(类型 NSMutableArray)和下载(类型 MultiDownload)创建 @properties

然后在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 和属性的更多信息时遇到问题,祝您好运

于 2012-06-24T11:12:56.527 回答