0

これは漠然とした質問だと思いますが、他の誰かがこれを観察したのではないかと思います。これがNSURLConnectionを呼び出すための私のコードです

   // Get data from server
    NSString *host = @"www.hostname.com";            
    NSString *urlString = [NSString stringWithFormat:@"/theRestOfTheURL"];
    NSURL *url = [[NSURL alloc] initWithScheme:@"http" host:host path:urlString];

    DLog(@"URL is %@", url);

    // Create the NSMutableData to hold the received data.
    // receivedData is an instance variable declared elsewhere.
    receivedData_ = [[NSMutableData data] retain];

    NSURLRequest *theRequest=[NSURLRequest requestWithURL:url
                                              cachePolicy:NSURLRequestUseProtocolCachePolicy
                                          timeoutInterval:15.0];

    // create the connection with the request
    // and start loading the data
    self.powerPlantDataConnection = [[[NSURLConnection alloc] initWithRequest:theRequest delegate:self] autorelease];

    [url release]; 

アプリを最初にロードしたときは正常に動作し、問題なく繰り返し呼び出すことができます。しかし、アプリを閉じて再度開くと、

(void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error

デリゲートメソッドは毎回呼び出され、リクエストがタイムアウトしたエラーメッセージが表示されます。2つの異なるURLを呼び出す2つの異なるViewControllerがあり、アプリを閉じて再度開いた後、両方が毎回失敗します。

誰かがこれが起こっているかもしれない理由を考えることができますか?どこから探し始めるかわかりません。リクエストのタイムアウトエラーの原因は何でしょうか?私が最初にアプリを実行したときにそれが機能するので、リクエストに問題はないはずです。


シミュレーターではなく、デバイスでのみこの問題が発生しているように見えることを追加するために編集しました。

4

2 に答える 2

3

クラッシュログを共有しておけばよかった(特に [error localizedDescription]クラスメソッドのような明確な定義で)。

あなたが言ったように、それはタイムアウトします(あなたの要求)。また、オブジェクトの作成方法が煩雑すぎるため、システムの作業が大きくなります。データをダウンロードするとき、特にあなたのような状況で、異なるインターフェースとURLを使用する場合は、 GCDを使用することをお勧めします。

提案次の ようにURLオブジェクトを作成できます。

   NSURL *url = [NSURL urlWithString:[NSString stringWithFormat:@"http://%@/%@?key1=%@&key2=%@", yourDomain, targetFile, value1, value2]];
于 2012-07-11T15:07:41.257 に答える
0

ASIHTTPRequestを使用するように切り替えました。これにより改善されましたが、更新しようとするたびにタイムアウトエラーが発生する状況でスタックしていました。私は周りを見回して尋ねましたが、最終的にTestFlightへの呼び出しを無効にすることで問題が解決したことがわかりました。詳細はこちら:

ASIHTTPRequestリクエストがタイムアウトしました

そしてここ:

github.com/pokeb/asi-http-request/issues/320

于 2012-07-24T18:19:44.557 に答える