Objective c 为什么未找到报告SDWebImageManager defaultCachePathForKey的编译器?
我看到编译器在以下代码中警告“未找到实例方法-cacheKeyForURL”和“未找到实例方法-defaultCachePathForKey”:Objective c 为什么未找到报告SDWebImageManager defaultCachePathForKey的编译器?,objective-c,xcode,compiler-warnings,sdwebimage,Objective C,Xcode,Compiler Warnings,Sdwebimage,我看到编译器在以下代码中警告“未找到实例方法-cacheKeyForURL”和“未找到实例方法-defaultCachePathForKey”: SDWebImageManager *manager = [SDWebImageManager sharedManager]; NSString *cacheKey = [manager cacheKeyForURL:[NSURL URLWithString:imageUrl]]; NSString *cachePath = [[manager ima
SDWebImageManager *manager = [SDWebImageManager sharedManager];
NSString *cacheKey = [manager cacheKeyForURL:[NSURL URLWithString:imageUrl]];
NSString *cachePath = [[manager imageCache] defaultCachePathForKey:cacheKey];
但显然,这些方法是有定义的。例如,这里是:
在代码文件的顶部,我包含了SDWebImage项目中的相关文件:
#import <SDWebImage/UIImageView+WebCache.h>
#import <SDWebImage/SDImageCache.h>
#import <SDWebImage/SDWebImageManager.h>
#导入
#进口
#进口
此外,SDWebImageManager.h
中的sharedImageManager
,编译器在查找它时没有问题。我只有第二行和第三行的警告
我的代码运行良好,这些方法都可以正常工作,不会崩溃。为什么编译器告诉我它找不到它
我正在运行XCode 6,仅为活动体系结构编译,iPhone6模拟器
更新
当我为发行版编译“所有架构”时,它突然发现cacheKeyForURL
和defaultCachePathForKey
,没问题,但是setImageWithURL
现在不推荐了吗
我确实看到了,但我只是非常困惑,当SDWebImage的头文件似乎没有任何特定于它们的体系结构时,为什么为这些不同的体系结构构建会打开/关闭各种编译器警告。我通过更仔细地检查“报告导航器”(neé)中的错误发现了这一点 事实证明,在它选择链接的“派生数据”文件夹中有一些非常旧的SDWebImageManager.h文件。不清楚他们为什么不清理我的项目。(可能与我通过Cocoapods从子模块迁移到包含SDWebImage有关?)
我需要导航到我的DerivedData文件夹,然后手动删除项目的子文件夹。这样做之后,项目现在成功构建,没有虚假警告 您使用的是哪个版本的
SDWebImage
?在新版本中,有一个sd\u setImageWithURL
。因此,您可以确认这一点。你可以用这个linkhttps://github.com/rs/SDWebImageVersion 3.7.1,根据Podfile.lock
#import <SDWebImage/UIImageView+WebCache.h>
#import <SDWebImage/SDImageCache.h>
#import <SDWebImage/SDWebImageManager.h>