0

で動作ありません。私はiOS10 +のための適応をしようとすると 、画像変数は常にnullを初期化し、そして私のimageViewsが空白に見えるさ:ダウンロード画像は、今、私は特にこの、iOS10に自分の非推奨iOS9コードを移行していますNSURLSessionDataTask

NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:req 
              completionHandler:^(NSData *data, NSURLResponse *response, NSError *error){ 
             NSLog(@"NSURLSessionDataTask - COMPLETE, error=%@",error); 
             if(!error){ 
              NSLog(@"NSURLSessionDataTask - COMPLETE, dataLength=%lu",(unsigned long)data.length); 
              NSLog(@"DataIOS10: %@",data); 
              if(data.length>0){ 
               NSData *dataIOS10 = [[NSData alloc] initWithBase64EncodedString:[[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding] options:NSDataBase64DecodingIgnoreUnknownCharacters]; 
               UIImage *image=[UIImage imageWithData:dataIOS10]; 

               dispatch_async(dispatch_get_main_queue(), ^{ 
               if(image){ 
                NSLog(@"NSURLSessionDataTask - COMPLETE, IMAGE OK"); 
                self.capability.icon=image; 
                self.item.iconImageView.image=image; 
               } 
               else{ 
                NSLog(@"NSURLSessionDataTask - COMPLETE, IMAGE ERROR"); 
                self.capability.icon=image;//Lets try shoving that data there, just in case LOL 
                self.item.iconImageView.image=image; 
               } 
               }); 
              } 
             } 
            }]; 
[dataTask resume]; 

EXTRA、要求は罰金に到着するように見える:

NSURLSessionDataTask - COMPLETE, response=<NSHTTPURLResponse: 0x15e450f0> { URL: https://abc.SOMESERVER.net/prod/wcid/iphone/icon_fun.png } { status code: 200, headers { 
    "Accept-Ranges" = bytes; 
    Connection = "keep-alive"; 
    "Content-Length" = 6416; 
    "Content-Type" = "image/png"; 
    Date = "Tue, 31 Jan 2017 13:11:05 GMT"; 
    Etag = "\"e554f6246076dc4eddf589f9552608b5\""; 
    "Last-Modified" = "Mon, 28 Apr 2014 13:30:15 GMT"; 
    Server = AmazonS3; 
    Via = "1.1 dc81da318a4ae20e51ccfd9463219596.cloudfront.net (CloudFront)"; 
    "X-Amz-Cf-Id" = "xlj4_3IUrjctZLrGlegXoZbrmTYqd_ahcGzG3K2glG3m6keedPk6mQ=="; 
    "X-Cache" = "Miss from cloudfront"; 
    "x-amz-meta-cb-modifiedtime" = "Thu, 31 Oct 2013 15:26:16 GMT"; 
} } 

イメージは常にゼロ以外のバイトサイズを持ち、空想的なBase64エンコーディングがあってもなくても常にnullになります。常に失敗します。私はメインスレッドでコードを実行しようとしました。なぜどんなアイデア?

+0

あなたは何が問題になったのですか –

+0

Nope @EmelElias私はこの時間を無駄にする時間がないので、同期呼び出しを使用しました。これは5つのアイコンしかロードしないためです。最高の解決策ではありませんが、私は時間が足りません。 – Josh

答えて

0

良い出発点は、同期呼び出しが

たNSData * imgData = [[NSDataのアロケーション] initWithContentsOfURL:URL]すなわち働いてチェックすることです。UIImage * image = [UIImage imageWithData:imgData];

データが画像化できない場合は、リクエストに間違いがあります。

+0

こんにちは、あなたの同期のアイデアが動作します。私のNSURLSessionTask内で何か変なことが起こっています。 – Josh

+0

あなたはNSURLSessionDownloadTaskで同じことをやってみることができます。 –

関連する問題