我没有从url.i获取图像我无法在StackOverflow上找到正确的解决方案。我发现了两种从URL转换图像的方法,但它们无法正常工作
NSURL *url = [NSURL URLWithString:@"https://mastersoftwaretechnologies.com:8014/uploads/50x50/6455.png"];
NSData *data = [NSData dataWithContentsOfURL:url];
UIImage *img = [[UIImage alloc] initWithData:data];
第二种方法是
NSURL * imageURL = [NSURL URLWithString:[@"https://mastersoftwaretechnologies.com:8014/uploads/50x50/6455.png" stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
NSLog(@"img url ==%@",imageURL);
NSData *data = [[NSData alloc] initWithContentsOfURL:[NSURL URLWithString:imageURL]];
UIImage *MYimage = [UIImage imageWithData:data];
UIImage 在两个条件下都返回nil
我添加了 NStransportsecurity 。
答案 0 :(得分:0)
最好使用SDWebImage库下载图像,它在后端管理大量工作,包括内存管理和缓存。
使用pod 'SDWebImage-ProgressView'
对此网址https://test.com:/image.png
[self.imageView bravo_setImageWithURL:[NSURL URLWithString:strUrl] placeholderImage:[UIImage imageNamed:placeholder_qrcode] options:SDWebImageAllowInvalidSSLCertificates convertTo:ImageConversionTypeCIRCULARPROFILEPICTURE];
答案 1 :(得分:0)
由于您的ssl证书或服务器端限制而导致此问题。
我已检查您的图片网址,并在SDWebImage
时收到以下错误消息。
尝试解决此错误消息。
错误域= NSURLErrorDomain代码= -1200"发生SSL错误,无法建立与服务器的安全连接。" UserInfo = {_ kCFStreamErrorCodeKey = -9806,NSLocalizedRecoverySuggestion =您是否还要连接到服务器?,NSUnderlyingError = 0x1700504d0 {错误域= kCFErrorDomainCFNetwork代码= -1200"(null)" UserInfo = {_ kCFStreamPropertySSLClientCertificateState = 0,_kCFNetworkCFStreamSSLErrorOriginalValue = -9806,_kCFStreamErrorDomainKey = 3,_kCFStreamErrorCodeKey = -9806}},NSLocalizedDescription =发生SSL错误,无法建立与服务器的安全连接。,NSErrorFailingURLKey = https://mastersoftwaretechnologies.com:8014/uploads/50x50/6455.png, NSErrorFailingURLStringKey = https://mastersoftwaretechnologies.com:8014/uploads/50x50/6455.png,_ kCFStreamErrorDomainKey = 3}
注意 - 您需要根据自己的ssl证书设置ATS。
或强>
在终端中运行此命令以获得更多解释。
nscurl --ats-diagnostics https://fmastersoftwaretechnologies.com --verbose
答案 2 :(得分:0)
您可以使用
#import" UIImageView + AFNetworking.h"
[profileImageView setImageWithURL:[NSURL URLWithString:photoURL] placeholderImage:[UIImage imageNamed:@" placeholder"]];
答案 3 :(得分:0)
您可以将此代码与有效网址一起使用。
NSString *url = @"";
NSURL *URL = [NSURL URLWithString:url];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:URL];
[NSURLConnection sendAsynchronousRequest:request
queue:[NSOperationQueue mainQueue]
completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) {
if ( !error )
{
UIImage *image = [[UIImage alloc] initWithData:data];
self.myImage.image = image;
}
}];
答案 4 :(得分:0)
请检查您提供的链接是否有某些限制,并且由于某种原因其连接已关闭。
如果链接正确或没有限制,您可以在浏览器中查看图像内容,同时ping链接。
对于负责任的图片下载,如果您想使用原生方法,您可以选择:
原生图片下载:
{
NSURLSession *session = [NSURLSession sessionWithConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration] delegate:self delegateQueue:nil]
NSString *urlString = @"http//:........";//url link
urlString = [urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSURLSessionDownloadTask *downloadSongTask = [session downloadTaskWithURL:[NSURL URLWithString:urlString]];
[downloadTask resume];
}
您将获得下载进度并完成委托回电。
<强> SDWebImage:强>
1. Install -> pod 'SDWebImage'
2. Import this header to class where you are downloading image,
3. Code snippet:
{
[imageView sd_setImageWithURL:url placeholderImage:[UIImage imageNamed:@"default"]options:SDWebImageAllowInvalidSSLCertificates];
}