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 在两种情况下为 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 的可达性示例代码。

然后,如果您有网络连接,则可以继续尝试加载文件。如果它失败了,你知道这不是因为没有网络数据连接。

于 2013-02-13T10:03:53.293 回答
0

在下载之前检查互联网连接,然后下载。您可以检查可用性 bu 放置条件

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 回答