0

画像がURLから読み込まれない場合、ローカルimage.pngをセルに追加するにはどうすればよいですか?

- (UITableViewCell*)tableView:(UITableView*)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
    static NSString *CellIdentifier = @"Cell";
    DetailCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

    NSURL* url = [NSURL URLWithString:[arrayOfImages objectAtIndex:indexPath.row]];
    NSURLRequest* request = [NSURLRequest requestWithURL:url];
    [NSURLConnection sendAsynchronousRequest:request
                                       queue:[NSOperationQueue mainQueue]
                           completionHandler:^(NSURLResponse * response,
                                               NSData * imagedata,
                                               NSError * error) {
                               if (!error){
                                   UIImage* image = [[UIImage alloc] initWithData:imagedata];
                                   cell.flowerImage.image = image;
                               }                     
    }];

    return cell;
}

arrayOfImages--jsonから解析したURL文字列の配列。

4

1 に答える 1

1

画像をnilと照合して、画像のURLを確認できます。

[NSURLConnection sendAsynchronousRequest:request
                                   queue:[NSOperationQueue mainQueue]
                       completionHandler:^(NSURLResponse * response,
                                           NSData * imagedata,
                                           NSError * error) {
                           if (!error){
                               UIImage* image = [[UIImage alloc] initWithData:imagedata];
                               if(!image) {
                                  cell.flowerImage.image = [UIImage imageNamed:@"localImage"]; //local bundle image.
                               } else
                                   cell.flowerImage.image = image;
                           } else {
                               cell.flowerImage.image = [UIImage imageNamed:@"localImage"];//local bundle image.
                           }
}];
于 2013-03-03T11:36:36.330 に答える