将 SDWebImage 导入 Swift 项目
Posted
技术标签:
【中文标题】将 SDWebImage 导入 Swift 项目【英文标题】:Importing SDWebImage into Swift project 【发布时间】:2015-06-08 17:19:03 【问题描述】:尝试将 SDWebImage 安装到我的 Swift 项目中。我正在使用以下说明 (https://github.com/rs/SDWebImage):
从下载页面下载并解压最新版本的框架 右键单击项目导航器并选择“将文件添加到“您的项目”: 在对话框中,选择 SDWebImage.framework: 选中“将项目复制到目标组的文件夹(如果需要)”复选框所以我 git clone --recursive
来自 GitHub 的项目,我将 .xcodeproj 文件拖到我的项目中(因为据我所知没有 SDWebImage.framework 文件,这一直适用于其他框架),我完成其余说明:
然后我在桥接头中添加#import <SDWebImage/UIImageView+WebCache.h>
。我构建了项目,我得到:“SDWebImage/UIImageView+WebCache.h”未找到。我已经尝试了这些步骤的一些变化,但似乎没有任何效果。我做错了什么?
编辑
很确定这是因为我没有拉入 SDWebImage.framework 文件,而是拉入 .xcodeproj 文件。但是我已经从 zip 下载并克隆了 repo,那里似乎没有 .framework 文件...
更新
所以显然我应该下载已编译的框架,我在另一个答案中找到了它:https://***.com/a/30545367/918065。也许?我没有线索。当我导入 .framework 文件时,我的桥接头工作并识别了#import <SDWebImage/UIImageView+WebCache.h>
,但它无法识别imageView.sd_...
。所以还在努力。
最后编译的框架是 3.7.0,你可以找到它:https://github.com/rs/SDWebImage/releases
为了更方便访问,框架的直接链接如下:https://github.com/rs/SDWebImage/releases/download/3.6/SDWebImage-3.6.framework.zip
【问题讨论】:
【参考方案1】:导入“SDWebImage/UIImageView+WebCache.h”
【讨论】:
我正在使用 Swift - 此导入不适用于项目文件或我的桥接头。 您是否在构建设置选项卡中设置了桥接头路径? @itstrueimryan 是的,它可以识别桥接头。我在其中导入了 Facebook,它运行良好,并且遵循#import <FBSDK.....>
格式【参考方案2】:
对我来说,当我从导入中删除 SDWebImage 时它会有所帮助。所以我在我的project-Bridging-Header.h
中有这个:
#import "UIImageView+WebCache.h"
有关 ios 桥接头的更多信息: https://developer.apple.com/library/ios/documentation/Swift/Conceptual/BuildingCocoaApps/MixandMatch.html
【讨论】:
对我不起作用。您是否将 SDWebImage.xcodeproj 或 SDWebImage.framework 导入到您的项目中?因为我搜索了文件夹并没有.framework文件,但我认为这是问题所在。 显然我必须下载已编译的框架......我只在另一个答案中找到:***.com/a/30545367/918065 它对我有用。将 cocoapods 版本从 0.39 更新到 1.0.1.beta.5 后,桥接头中的 SDWebImage 导入出现错误“找不到文件”。将导入更改为 #import "UIImageView+WebCache.h" 解决了这个问题。谢谢。【参考方案3】:我推荐使用 CocoaPods 来处理依赖关系。 CocoaPods 是一个依赖管理器,旨在解决此类问题。
按照他们网站上的安装指南:https://cocoapods.org
【讨论】:
是的,但是我在使用其他一些框架时遇到了问题,所以我决定使用手动方法,并且对于我使用过的其他 4 个框架来说效果很好,所以我想看看我是否可以在我跳回 CocoaPods 之前保持一致【参考方案4】:所以在我最终意识到您不应该使用主 SDWebImage 文件夹,而是将其中的 SDWebImage 文件夹用于项目之前,没有什么对我有用。拖入 .xcodeproj 文件、整个文件夹或 .framework 文件不起作用。导入那个子 SDWebImage 文件夹,然后利用 Libor Zapletal 的回答:#import "UIImageView+WebCache.h"
最终让这件事对我有用。
【讨论】:
【参考方案5】:这在我的情况下有效:
-
在您的桥接头中添加
#import <SDWebImage/UIImageView+WebCache.h>
在项目Build Settings中,在Objective-C Bridging Header中设置桥接头文件的路径。前任。 My Project/BridgingHeader.h
【讨论】:
这是不正确的。斜杠前不应包含“我的项目”。实际上应该没有斜线以上是关于将 SDWebImage 导入 Swift 项目的主要内容,如果未能解决你的问题,请参考以下文章
在 Swift 中使用 UIActivityIndicator-for-SDWebImage
Swift - 无法识别的选择器发送到 SDWebImage 方法上的实例
SDWebImage 库在 swift 3 Xcode 8.0 中出现错误