0

申し訳ありませんが、サーバーから複数のファイルをダウンロードするための次のコードを実装するのに問題があります。MultipleDownload.h および MultipleDownload.m ファイルをアプリ内の新しい Objective-C クラスとして設定しました。しかし、ファイルのダウンロードを実行するために私の updateView.m から呼び出す方法がわかりません。指示に従って、次の行で初期化してダウンロードを開始する必要があると言われています。URLからファイルのダウンロードを開始するためにそのコードをどこに置くべきかわかりません。その MultipleDownload.m コード内でメソッドをセットアップし、そのメソッドを別のオブジェクト (updateView.m) から呼び出してダウンロードを開始する必要がありますか? または、これらの行を (updateView.m) のメソッドの 1 つに入れますか? 私は正直に両方を試しましたが、何らかの理由でエラーが発生し続けます.URLと書かれています. 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の理解に問題があり、Objective Cとプロパティに関する詳細情報を読む場合は、幸運を祈ります。

于 2012-06-24T11:12:56.527 に答える