ObjC 类别不 link 到 iOS7
ObjC Category doesn't link to iOS7
我将 SDWebImage 与 CocoaPods 一起使用,我正在开发的应用程序必须支持 iOS7。
在使用 CocoaPods 安装 SDWebImage 4.0.0 版后,我将其导入 class 和 #import <SDWebImage/UIImageView+WebCache.h>
。
我使用类别的方法之一 sd_setImageWithURL:
来异步下载图像。
这在 iOS8-10 上运行良好。但出于某种原因(仅在 iOS7 上),应用程序崩溃并提示 sd_setImageWithURL:
是无法识别的选择器。
为什么类别无法仅在一个 OS 上正确加载?这对我来说根本没有任何意义。 :/
更新:
我 运行 对项目进行了分析,我注意到了这个警告:
ld: warning: ignoring file <path/to/file>/libSDWebImage.a, file was built for archive which is not the architecture being linked (armv7): <path/to/file>/libSDWebImage.a
(路径真长,我换成<path/to/file>
)
正如我所怀疑的那样,当 运行 在较新版本的 iOS 上时,此警告不会出现,它也使用不同的架构,arm64。
因此,库 libSDWebImage.a
似乎正在为 arm64 构建。我该怎么办?
我在 Build Settings 中将 Build Active Architecture Only
设置为 NO,然后按照此处答案的建议执行 "deep clean":
这似乎解决了我的问题。
我将 SDWebImage 与 CocoaPods 一起使用,我正在开发的应用程序必须支持 iOS7。
在使用 CocoaPods 安装 SDWebImage 4.0.0 版后,我将其导入 class 和 #import <SDWebImage/UIImageView+WebCache.h>
。
我使用类别的方法之一 sd_setImageWithURL:
来异步下载图像。
这在 iOS8-10 上运行良好。但出于某种原因(仅在 iOS7 上),应用程序崩溃并提示 sd_setImageWithURL:
是无法识别的选择器。
为什么类别无法仅在一个 OS 上正确加载?这对我来说根本没有任何意义。 :/
更新: 我 运行 对项目进行了分析,我注意到了这个警告:
ld: warning: ignoring file <path/to/file>/libSDWebImage.a, file was built for archive which is not the architecture being linked (armv7): <path/to/file>/libSDWebImage.a
(路径真长,我换成<path/to/file>
)
正如我所怀疑的那样,当 运行 在较新版本的 iOS 上时,此警告不会出现,它也使用不同的架构,arm64。
因此,库 libSDWebImage.a
似乎正在为 arm64 构建。我该怎么办?
我在 Build Settings 中将 Build Active Architecture Only
设置为 NO,然后按照此处答案的建议执行 "deep clean":
这似乎解决了我的问题。