Сбой SDWebImage UIImageView+WebCache на 64-битных устройствах

У меня есть этот код:

#import <SDWebImage/UIImageView+WebCache.h>
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
[cell.thumbnail setImageWithURL:[NSURL URLWithString:thumbnailURL] placeholderImage:[UIImage animatedImageWithImages:loadingArray duration:1] options:indexPath.row == 0 ? SDWebImageRefreshCached : 0];
}

где «loadingArray» — это просто массив изображений png. CellForRowAtIndexPath, очевидно, имеет гораздо больше кода.

Этот код работает на 32-битных устройствах и эмуляторе на 32-битном, но он дает сбой на 64-битных устройствах и 64-битном эмуляторе.

Вот отчет о сбое из XCode:

-[UIImageView setImageWithURL:placeholderImage:options:]: unrecognized selector sent to instance 0x110942780
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIImageView setImageWithURL:placeholderImage:options:]: unrecognized selector sent to instance 0x110942780'

Я использую платформу SDWebImage-3.6, повторно загруженную сегодня (22 апреля 2014 г.). Очистил проект, повторно добавил приложение в эмулятор... та же проблема.

Любое предложение по устранению этой проблемы будет высоко оценено. Спасибо.


person TooManyEduardos    schedule 22.04.2014    source источник
comment
Мммм, похоже, что удаление фреймворка SDWebImage и добавление файлов .h и .m в проект вручную решает проблему.   -  person TooManyEduardos    schedule 23.04.2014


Ответы (1)


Я решил эту проблему, изменив настройки сборки SDWebImage на "(armv7,arm64)" . Есть несколько ошибок в «NSLog», но их легко исправить, кроме того факта, что вам нужно изменить следующее:

- (int)getMemoryCount
{
    return [[memCache allKeys] count];
}

в SDImageCache.m в

- (int)getMemoryCount
{
    return (int)[[memCache allKeys] count];
}
person hungryspider    schedule 05.10.2014
comment
как вы это сделали - изменили настройки сборки фреймворка? - person Petar; 23.07.2015