Использование UIImageView с SDWebImage

Добрый день,

Я пытаюсь внедрить SDWebImage в свой TableViewController, но у меня возникают некоторые ошибки из-за моего UiImageView, и я не могу обнаружить проблему, и мне нужна помощь в этом. Я надеюсь, что вы можете найти что-нибудь, потому что я потерялся в данный момент.

Я получаю следующую ошибку:

Отсутствие видимого @interface для 'UIImageView' объявляет селектор 'sd_setImageWithURL:placeholderImage:'

Приложение работает, и кеш работает нормально, но я получаю эту ошибку.

Почему возникает эта ошибка, если я уже установил для своего «carImage» значение UIImageView? Как я могу это решить?

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;
}

Это мой 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

Заранее спасибо.


person MontyLt    schedule 11.11.2014    source источник
comment
Не могли бы вы проверить, что пути поиска библиотеки... или это были пути поиска фреймворка? для ваших настроек сборки Project + Target + TestSuite все указывают на SDWebImageFramework? Я помню, как в прошлый раз мне не хватало пути к фреймворку для моего TestSuite, и он жаловался, что фреймворк не найден.   -  person Zhang    schedule 12.11.2014


Ответы (2)


Вы должны импортировать категорию UIImageView, чтобы компилятор мог ее увидеть:

#import <SDWebImage/UIImageView+WebCache.h>
person 0x52    schedule 11.11.2014
comment
Я уже сделал это, но у меня все еще есть эта ошибка. Спасибо @0x52 - person MontyLt; 12.11.2014
comment
Для меня IBOutlet был UIView вместо UIImageView - person Haroldo Gondim; 13.11.2015
comment
У меня была такая же проблема. - person Bkillnest; 29.11.2016

Убедитесь, что вы импортируете файл заголовка, содержащий методы категории sd_xxxx, которые вы пытаетесь вызвать.

Попробуй это:

@implementation SomeClass

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

@end

Вы получите тот же тип ошибки.

person Ray    schedule 11.11.2014
comment
Я могу щелкнуть в своем методе sd_, и меня перенаправят к файлу внутри моего проекта. Почему это все еще не работает? - person MontyLt; 12.11.2014