- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我将我的代码从 Swift 2 更新到 Swift 3,我发现了 SDWebImage 的错误。
SDWebImageManager.shared().downloadImage(with: URL(string: book.picURL), options: .lowPriority, progress: { (min:Int, max:Int) -> Void in
}) { (image:UIImage!, error:NSError!, cacheType:SDImageCacheType, finished:Bool, url:NSURL!) -> Void in
if image != nil && finished
{
let obj = cell.keepUrl
if obj != nil && url != nil && obj == url
{
cell.picURL.image = image
}
}
}
SDWebImageCompletionWithFinishedBlock
的定义如下
typedef void(^SDWebImageCompletionWithFinishedBlock)(UIImage *image, NSError *error, SDImageCacheType cacheType, BOOL finished, NSURL *imageURL);
错误信息是
"Cannot convert value of type '(UIImage!, NSError!, SDImageCacheType, Bool, NSURL!) -> Void' to expected argument type 'SDWebImageCompletionWithFinishedBlock!'"
谁能帮我解决这个错误?谢谢。
最佳答案
完成 block 的签名是这样的:
typealias PrefetchingDone = (UIImage?, Error?, SDImageCacheType, Bool, URL?) -> Void
您需要进行以下更改:
NSError
更改为 Error
。NSURL
更改为 URL
!
更改为 ?
使用它你可以写一个这样的方法:
class func preloadImageWithUrlString(_ urlString: String, fetchedClosure: ImageFetchedClosure? = nil) {
let imageURLString = addWidthParameter(urlString, width: width)
guard let url = URL(string: imageURLString) else {
// Call closure with some error...
fetchedClosure(nil, MyError.someCustomErrorHere, SDImageCacheTypeNone, true, nil)
return
}
SDWebImageManager.shared().downloadImage(with: url, options: SDWebImageOptions(rawValue: 0), progress: nil) {
(maybeImage, maybeError, cacheType, finished, imageURL) in
if let closure = completionClosure {
closure(maybeImage, maybeError, cacheType, url)
}
}
}
你这样使用:
UIImageView.preloadImageWithUrlString("http://some.url.com/myImage.png") {
(maybeImage, maybeError, cacheType, finished, imageURL) in
print("prefetching done")
}
关于iOS-Swift 3-SDWebImage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39763279/
我正在使用iPhone应用程序。在这个应用程序中,我使用了许多图像,我需要将这些图像存储在高速缓存中。为此,我发现SDWebImage是正确的框架,但无法在我的iPhone项目中包括此框架。谁能建议我
我使用 SDWebImage 将图像下载到我的 UITableView 中: [cell.imageView setImageWithURL:[NSURL URLWithString:tempPhot
如何使用 UIImageView 在 SDWebImage 占位符中设置事件指示器 最佳答案 Swift 5 和 SDWebImage 5-beta //pod file pod 'SDWebImag
所以首先,我发现了这个: SDWebImage process images before caching 这有帮助,但我真的想使用SDWebImage,有没有办法在完成之前通过类外部的方法处理图像?
我在应用程序中使用SDWebImage从网络加载和缓存图像。它的工作原理就像是一种魅力,但是唯一的问题是,每当我退出应用程序时,即使是暂时退出,图像缓存也会被清除,所有图像都必须再次下载。 Inter
我正在使用 SDWebImage 将图像从服务器获取到我在 IOS 中的表格 View 应用程序。 但问题是,当我在表格 View 中向下滚动而不是等待图像加载时,将下载的图像放在表格 View 的前
我正在尝试使用 SDWebImage 来缓存从网络检索的图像。图像一直缓存到内存中。我已经看到默认保存到磁盘的文档。 Everything will be handled for you, from
我有一个带有背景图像的按钮,我使用 SDWebImage 下载该按钮。我想保持高度不变,并通过保持纵横比而不剪切图像来改变宽度。只是恒定的高度和动态宽度。这里出了什么问题? //CODE FROM F
我使用 SDWebImage pod 进行下载并显示来自 json 的图像,它运行良好,但我有一个大问题。 我正在使用collectionView,当加载单元格时,某些单元格显示错误的图像。我搜索了它
我一定是在做一些愚蠢的事情,但是 SDWebImage 永远不会执行以下的完成处理程序: episodeImageView?.sd_setImage(with: url, completed: { [
我正在使用 SDWebImage 库。当我使用 iPhone 时它工作正常,但当我使用模拟器编译时它不起作用。我收到此错误: Undefined symbols for architecture
我尝试了 100 多种使用 SDWebImage 制作图像动画的方法,但总是失败。我理解使用 block 好吗?我有 IBOutlet 属性图像名称 images1。我制作了数组来存储值并为 3 个图
我正在使用 SDWebImage 框架下载 iPhone 游戏中的个人资料图像。 [cell.playerImage setImageWithURL:url placeholderImage: Def
我在 UICollectionView 和 UITableView 中使用 SDWebImage。在这两种情况下,当行数很高时,内存使用率有时会非常高,我会收到内存警告。 以下是我的头像: 你看,有时
我正在使用 SDWebImage 库来缓存 UICollectionView 的图像,该图像是从 url 下载的,每次发送所有请求但只下载两个图像。有谁知道原因吗???提前致谢。 代码是: SDWeb
美好的一天! 从网络下载全尺寸图像时,我使用这两个库。 代码: -(void)viewDidAppear:(BOOL)animated { dispatch_async(dispatch_ge
是否可以使用SDWebImage下载AES加密图片?如果是这样,我在哪里可以访问下载的数据,手动解密它们? 最佳答案 不幸的是,无法使用 SDWebImage 下载加密图像。我只是看了他们的类图,没有
我正面临这个问题,下面是代码。它第一次显示错误,然后没有完成 block 调用。 [self.comicsImage setImageWithURL:[NSURL URLWithString:self
我检查了 NSBundle,但找不到 SDWebImage 保存图像的缓存。缓存是否启用(见下面的代码)?根据Docs它进行缓存管理。 如文档中所示: Just #import the UIImage
这个问题可能很奇怪,但它正在发生,而我却不明白。 我刚刚从 https://github.com/rs/SDWebImage 下载了代码并尝试运行示例项目。 它正在构建成功,但没有运行。为什么? 提前
我是一名优秀的程序员,十分优秀!