MontyLt
MontyLt

Reputation: 5

Using UIImageView with SDWebImage

Good afternoon,

I'm trying to implement SDWebImage in my TableViewController but I'm having some errors due to my UiImageView that I'm not able to detect the problem and I need some help with that. I hope you can find something because I'm lost at the moment.

I'm getting the following error:

No visible @interface for 'UIImageView' declares the selector 'sd_setImageWithURL:placeholderImage:'

The app is working and the cache is working fine but I'm getting that error.

Why is this error happening if I have already set my "carImage" to UIImageView? How can I solve it?

CarTableViewController.m

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"carTableCell";

    CarTableViewCell *cell = [tableView
                              dequeueReusableCellWithIdentifier:CellIdentifier];

    if (cell == nil) {
        cell = [[CarTableViewCell alloc]
                initWithStyle:UITableViewCellStyleDefault
                reuseIdentifier:CellIdentifier];
    }

    // Configure the cell...
    cell.makeLabel.text = [[_jsonArray objectAtIndex:indexPath.row] valueForKey:@"id"];
    cell.likes.text = [[_jsonArray objectAtIndex:indexPath.row] valueForKey:@"likes"];
    cell.comments.text = [[_jsonArray objectAtIndex:indexPath.row] valueForKey:@"comments"];
    cell.username.text = [[_jsonArray objectAtIndex:indexPath.row] valueForKey:@"username"];
    cell.refuser.text = [[_jsonArray objectAtIndex:indexPath.row] valueForKey:@"user_ref"];

    cell.modelLabel.text = [[_jsonArray objectAtIndex:indexPath.row] valueForKey:@"user"];

    NSURL * imageURL = [NSURL URLWithString:[[_jsonArray objectAtIndex:indexPath.row] valueForKey:@"imagen"]];
    NSData * imageData = [NSData dataWithContentsOfURL:imageURL];
    UIImage * carPhoto = [UIImage imageWithData:imageData];

// ERROR    [cell.carImage sd_setImageWithURL:imageURL placeholderImage:[UIImage imageNamed:@"placeholder.png"]];

    NSURL * imageURL2 = [NSURL URLWithString:[[_jsonArray objectAtIndex:indexPath.row] valueForKey:@"image"]];
    NSData * imageData2 = [NSData dataWithContentsOfURL:imageURL2];
    UIImage * carPhoto2 = [UIImage imageWithData:imageData2];

    cell.profileImage.image = carPhoto2;

    return cell;
}

That's my CarTableViewCell.h:

@interface CarTableViewCell : UITableViewCell

@property (nonatomic, strong) IBOutlet UIImageView *carImage;
@property (nonatomic, strong) IBOutlet UILabel *makeLabel;
@property (nonatomic, strong) IBOutlet UILabel *modelLabel;

@property (nonatomic, strong) IBOutlet UILabel *likes;
@property (nonatomic, strong) IBOutlet UILabel *comments;
@property (nonatomic, strong) IBOutlet UILabel *username;
@property (nonatomic, strong) IBOutlet UILabel *refuser;
@property (nonatomic, strong) IBOutlet UIImageView *profileImage;

@end

Thanks in advance.

Upvotes: 0

Views: 811

Answers (2)

Ray
Ray

Reputation: 21

Make sure you're importing the header file that contains the sd_xxxx category methods you're trying to call.

Try this:

@implementation SomeClass

-(void)doSomething {
    UIView *view = [[UIView alloc] init];
    [view doSomethingCool];
}

@end

You will get the same type of error.

Upvotes: 0

0x52
0x52

Reputation: 91

You have to import the UIImageView category, so the compiler can see it:

#import <SDWebImage/UIImageView+WebCache.h>

Upvotes: 1

Related Questions