Objective c SDWebImageDownloader报告”;“不兼容的块类型”;错误

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

使用以下代码添加SDWebImage时:

[[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);