Object-c SDWebImage 图片一直加载不出来

725 阅读1分钟

服务端返回 hard.storage.shmedia.tech/%E6%96%B0%E… SDWebImage 无法加载上面链接 ,因为服务端对中文做了编码,未通知客户端,客户端也是统一做了编码的 ,两次编码导致无法加载 解决方法: 客户端判断url是否包含中文,包含中文就执行编码。 上代码

- (void)setImageUrl:(NSString *)url placeholderImage:(NSString *)imageName
{
    if ([url length] == 0) {
        self.image = [UIImage imageNamed:imageName];
    }
    if ([url includeChinese]) {
        
        url = [url stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
        
    }
//
    [self sd_setImageWithURL:[NSURL URLWithString:url] placeholderImage:[UIImage imageNamed:imageName]  options:SDWebImageLowPriority|SDWebImageRetryFailed|SDWebImageScaleDownLargeImages];
}
是否包含中文
- (BOOL)includeChinese
{
    for(int i=0; i< [self length];i++)
    {
        int a =[self characterAtIndex:i];
        if( a >0x4e00&& a <0x9fff){
            return YES;
        }
    }
    return NO;
}