Objective c SDWebImageDownloader报告”;“不兼容的块类型”;错误
使用以下代码添加SDWebImage时:Objective c SDWebImageDownloader报告”;“不兼容的块类型”;错误,objective-c,sdwebimage,Objective C,Sdwebimage,使用以下代码添加SDWebImage时: [[SDWebImageDownloader sharedDownloader] downloadImageWithURL:imageUrl options:0 progress:^(NSUInteger receivedSize, NSInteger expectedSize) { } completed:^(UIImage *image, NSData *data, NSError *error, BOOL finished) { if
[[SDWebImageDownloader sharedDownloader] downloadImageWithURL:imageUrl options:0 progress:^(NSUInteger receivedSize, NSInteger expectedSize) {
} completed:^(UIImage *image, NSData *data, NSError *error, BOOL finished) {
if (image && finished) {
iconimage.image = image;
}
}];
它在第行报告错误信息:
[[SDWebImageDownloader sharedDownloader] downloadImageWithURL:imageUrl options:0 progress:^(NSUInteger receivedSize, NSInteger expectedSize)
错误显示:
不兼容的块类型将'void(^)(NSUInteger,NSInteger)
发送到'SDWebImageDownloaderProgressBlock'
类型的参数(也称为'void(^)(NSUInteger,NSUInteger)
)
我使用的是SDWebImage的3.6版。我刚刚检查了,并且SDWebImageDownloaderProgressBlock
似乎带有两个NSInteger
参数(注意,不是NSInteger
):
您当前正在对receivedSize
参数使用NSInteger
,对expectedSize
使用NSInteger
。如果上述typedef
正确,则应同时使用NSInteger
尽管如此,您还是提供了一条错误消息,表明您当前的SDWebImage副本正在查找两个NSUInteger
参数。也许您使用的是不同版本/分支的SDWebImage;当你在问题中输入错误信息时,可能只是输入错误。无论如何,如果您的错误消息真的说它需要两个NSUInteger
参数,那么这就是您应该使用的
总之,您应该确保downloadImageWithURL
的progress
块的各个参数与SDWebImageDownloaderProgressBlock
中的SDWebImageDownloader.h
中的SDWebImageDownloaderProgressBlock
的定义完全匹配,而SDWebImageDownloaderProgressBlock
似乎采用了两个NSInteger
参数(注意,不是NSInteger
):
您当前正在对receivedSize
参数使用NSInteger
,对expectedSize
使用NSInteger
。如果上述typedef
正确,则应同时使用NSInteger
尽管如此,您还是提供了一条错误消息,表明您当前的SDWebImage副本正在查找两个NSUInteger
参数。也许您使用的是不同版本/分支的SDWebImage;当你在问题中输入错误信息时,可能只是输入错误。无论如何,如果您的错误消息真的说它需要两个NSUInteger
参数,那么这就是您应该使用的
总之,您应该确保
downloadImageWithURL
的progress
块的各个参数与SDWebImageDownloaderProgressBlock
中的SDWebImageDownloader.h
中的progress的定义完全匹配。我尝试将进度设置为零,它会工作。我尝试将进度设置为零,它会起作用的。
typedef void(^SDWebImageDownloaderProgressBlock)(NSInteger receivedSize, NSInteger expectedSize);