0

次のコードを使用しています

NSMutableArray *image=[[NSMutableArray alloc]init];
    for(int i=1;i<4;i++)
    {
        NSString *urlString =[NSString stringWithFormat:@"http://www.isco.com/webproductimages/appBnr/bnr%d.jpg",i];
        NSData *photoData = [NSData dataWithContentsOfURL:[NSURL URLWithString:urlString]];
       [image addObject:photoData];
    }

私の問題は、ネットワーク障害が発生した場合、スレッドが表示されることです...このスレッドを処理する方法は??

4

2 に答える 2

0
    NSMutableArray *image=[[NSMutableArray alloc]init];
        for(int i=1;i<4;i++)
        {
            NSString *urlString =[NSString stringWithFormat:@"http://www.isco.com/webproductimages/appBnr/bnr%d.jpg",i];

         NSError *error;
     NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:urlString] options:NSDataReadingUncached error:&error    ];

        if (data) {
      [image addObject:photoData];
         }
        else{
            if (error) {
                NSLog(error);
            }
        }


  }
于 2012-09-21T12:56:29.743 に答える
0

「スレッド」の問題 (エラー/例外) は、複数の要因によって引き起こされる可能性があります。インターネット接続がダウンしているか、サーバーが何らかの形式の http エラーをスローしている可能性があります。

まず、ネットワーク操作を実行しているときにインターネット接続が失われていないことを確認してください。インターネット接続を確認する方法については、いくつかのアドバイスがあります。Reachability1 つは、SDK 自体によって提供されるクラスを使用することです。その方法については、この記事を参照してください: iOS または OSX でアクティブなインターネット接続を確認する方法は?

この記事では、インターネット接続についてもさらに詳しく説明します: iOS5 を使用した iPad アプリでのインターネット接続のテスト

インターネット接続ではなく、http サーバーのエラーであると判断した場合。呼び出している http サービスがデータを適切に返していることを確認してください。これを確認するためにいくつかのRESTクライアントツールを使用します(REST Client

最後に、ブラウザで呼び出そうとしている URL をテストしたところ、Bad Requestエラーがスローされました。つまり、iOS コードとは何の関係もありません。このサーバーがあなたの管理下にある場合は、それを修正する必要があります。

于 2012-09-21T12:58:00.153 に答える