1

image/txt をダウンロードしようとしましたが、その URL が存在するまでそれを実行し、その image/txt ファイルをダウンロードする必要があるため、同じメソッドを再度呼び出し続け、デバッグ ポイントを設定すると、これが表示されますスレッド キュー

URLが正しい場合、メソッドを再度呼び出していないため、デバッグナビゲーターにキューが表示されません。私はAFNetworkingライブラリを同じように参照しましたが、NSURLSessionで行っているのと同じように機能していると思いますよね?

ケース:- URL が存在するかどうかを確認します。存在する場合は、両方の URL (time.txt と image.png) をロードするよりも、そうでない場合は WebService(XmlParser) を呼び出して、次のファイルの URL をチェックし続けます。

time.txt+image.png

また

tryagain.txt

存在するものを表示します。

このAFNetworking Questionも確認しましたが、操作の数を追加したくないため、役に立ちませんでした。存在するファイルをロードしたい。

AFNetworking/NSURLSession では、成功しても失敗しても操作が完了するためです。


-(無効)ダウンロード
{
 NSString *imageUrl = [NSString stringWithFormat:@"%@",txtNumber.text];
       
 NSURLSessionConfiguration *sessionConfig =[NSURLSessionConfiguration defaultSessionConfiguration];
        
 NSURLSession *session =[NSURLSession sessionWithConfiguration:sessionConfig
                                               デリゲート:自分
                                          delegateQueue:nil];
        
 NSURLSessionDownloadTask *getImageTask = [セッション downloadTaskWithURL:[NSURL URLWithString:imageUrl]
                        
                                  completionHandler:^(NSURL *場所、
                                                      NSURLResponse *応答、
                                                      NSError *エラー)
                        {
                           UIImage *downloadedImage =[UIImage imageWithData:[NSData dataWithContentsOfURL:location]];

                                      dispatch_async(dispatch_get_main_queue(), ^{
                                          // 画像を扱う
                                          if (downloadedImage)
                                          {
                                              carImgView.image = ダウンロードした画像;
                                              結果 = TRUE;
                                          }
                                          そうしないと
                                          {
                                              結果 = FALSE;
                                              [セルフトライアゲイン];
                                          }
                                      });
                                  }];
        
        [getImageTask 再開];
}
-(無効)再試行
{
    NSString *strImg = [[NSString stringWithFormat:@"%@",gblPolicyNo] stringByAppendingString:FilePolStatus];
    
    NSString *apiImage = [NSString stringWithFormat:@"http://moviepoint.info/%@/%@",FolderPolStatus,strImg];
    
    NSURL *aImgUrl = [NSURL URLWithString:apiImage];
    // 2
    NSURLSessionConfiguration *sessionConfig =
    [NSURLSessionConfiguration defaultSessionConfiguration];
    
    // 3
    tryAgainSession =[NSURLSession sessionWithConfiguration:sessionConfig
                                           デリゲート:自分
                                      delegateQueue:nil];
    
    
    // 1
    getTryAgainTask = [tryAgainSession downloadTaskWithURL:aImgUrl
                    
                    
                              completionHandler:^(NSURL *場所、
                                                  NSURLResponse *応答、
                                                  NSError *エラー)
                    {
                        
                        // 2
                        UIImage *downloadedImage =[UIImage imageWithData:[NSData dataWithContentsOfURL:location]];
                        //3
                        dispatch_async(dispatch_get_main_queue(), ^{
                            // 画像を扱う
                            if (downloadedImage)
                            {
                                [policyImgWebView loadData:[NSData dataWithContentsOfURL:location] MIMEType:nil textEncodingName:nil baseURL:nil];
                                NSLog(@"はい");
                            }
                            そうしないと
                            {
                                NSLog(@"いいえ");
                                [self performInBackground];
                            }
                        });
                    }];
    
    // 4
    [getTryAgainTask 再開];
    
}

私が間違っている場合は修正してください。この問題の解決を手伝ってください。

4

1 に答える 1