1

インターネット接続がない場合、または画像が利用できなくなった場合にNSDataがnilを返すかどうかを確認するにはどうすればよいですか?

これはコードです:

NSString *str = @"http://p.twimg.com/A76-I-PCYAA75YH.jpg";//URL is broken
NSData *imgData = [NSData dataWithContentsOfURL:[NSURL URLWithString:url]];
image = [UIImage imageWithData:imgData];

nsdataは、次の2つの場合にnilになります。

  1. インターネットに接続していない場合。
  2. または、URLの画像が利用できなくなった場合。
4

3 に答える 3

4

このコードを試してください。

NSURL* url = [NSURL URLWithString:@"http://imageAddress.com"];
NSURLRequest* request = [NSURLRequest requestWithURL:url];


[NSURLConnection sendAsynchronousRequest:request
    queue:[NSOperationQueue mainQueue]
    completionHandler:^(NSURLResponse * response,
        NSData * data,
        NSError * error) {
if (!error){
        NSImage* image = [[NSImage alloc] initWithData:data];
    // do whatever you want with image
}

}];
于 2013-02-13T10:24:26.880 に答える
2

まず、利用可能なネットワークデータ接続を個別にテストする必要があります。AppleのReachabilityサンプルコードを参照してください。

次に、ネットワーク接続がある場合は、先に進んでファイルをロードしてみてください。その後失敗した場合は、ネットワークデータ接続がなかったためではないことがわかります。

于 2013-02-13T10:03:53.293 に答える
0

ダウンロードする前に、インターネット接続を確認してからダウンロードしてください。あなたはの状態を置くことで利用可能性をチェックすることができます

if(imgdata == nil)
     // image is not available in server
  else 
        // convert data into image and use
         image = [UIImage imageWithData:imgData];
于 2013-02-13T10:02:51.660 に答える