0

NSStringの* strURL = [NSStringのstringWithFormat: "%の@アクション= getResForOffer & offerid =%@" @、SERVER_URL、strOfferID]を遅らせています。、高速応答を与えることなく、デバイスで、それは応答

NSURL *url = [NSURL URLWithString:[strURL stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]; 

NSMutableURLRequest * request = [NSMutableURLRequest requestWithURL:url]; 

[request setHTTPMethod:@"GET"]; 

[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"]; 

[NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) 
{ 
    if (error) 
    { 
     NSLog(@"%@",error.description); 
    } 
    else 
    { 
     NSMutableArray * arrJsonData = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil]; 

     NSLog(@"Json Data --> %@",arrJsonData); 

     if (arrJsonData.count) 
     { 

     } 
    } 
}]; 

答えて

0

これは、おそらく、あなたのアプリの他の部分が、メインスレッドの実行ループを長時間張っていることを意味します。応答を処理するコードは、メインスレッド(メインのNSOperationキュー、特に)がアイドル状態になるまで実行できません。あなたのメインスレッドが、そのNSOperationキュー、メイン実行ループ、またはメインディスパッチキュー上で何か他の作業をしている場合は、ハンドラは終了するまで実行を開始しません。

iOSデバイスはシミュレータよりも速度がかなり遅いため、シミュレータで速いものは実際のデバイスでかなり長くかかることがあります。

私は、(デバイス上の)あなたのアプリの時間プロファイルを行い、その時間中に何が行われているかを見て、そこから行くことを強く推奨します。あなたが目に見える遅れを見ているなら、あなたはかなり簡単に問題を見つけるだろうと思う。

関連する問題