抱歉,我觉得有点愚蠢,但是我在实现以下代码以从服务器下载多个文件时遇到了麻烦。我已将 MultipleDownload.h 和 MultipleDownload.m 文件设置为新的 Objective-C 类我的应用程序。但不确定如何从我的 updateView.m 调用它来执行文件下载。根据说明,它说我需要使用以下几行初始化并开始下载。我不知道该把代码放在哪里来开始从网址下载文件。我是否必须在 MultipleDownload.m 代码中设置一个方法并从另一个对象 (updateView.m) 调用该方法来启动下载?或者我是否将这些行放入(updateView.m)中的方法之一?老实说,我都尝试过,但由于某种原因,我不断收到错误,它说 urls.如果我把它放在 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;
最佳答案
你所做的是在updateView.h
为网址(类型 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 时遇到问题,请阅读有关 Objective C 和属性的更多信息,祝您好运
关于iphone - 如何实现多个下载代码 objective-c ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11176916/