0

現在/他の場所の NSURLConnection を使用して、API を介して天気情報を取得する場所ベースのアプリを作成しています。最初に、正常に機能するリクエストを送信しました。しかし、次回は、NSURLConnectionがデリゲートメソッドを呼び出していないときに機能しない同じ場所の情報を参照したいと思います。

これは私のコードです:

NSString *strs=[@"http://www.earthtools.org/timezone-1.1/" stringByAppendingString:[NSString stringWithFormat:@"%@/%@",place.latitude,place.longitude]];

NSMutableURLRequest *request=[NSMutableURLRequest requestWithURL:[NSURL URLWithString:strs]];

self.reqTimeZone=[NSURLConnection connectionWithRequest:request delegate:self];
[self.reqTimeZone start]; 
4

1 に答える 1

6

私はあなたが意味すると仮定しますNSURLConnectionNSConnection存在しません)。NSURLConnection一度しか使えません。NSURLConnection のインスタンスの再利用を参照してください。

もう 1 つNSURLConnectionの落とし穴は、runloop を使用してスレッドで実行する必要があることです。メイン スレッドには自動的に実行ループがありますが、GCD とNSOperationスレッドで呼び出されるメソッドには明示的に作成された実行ループが必要です。NSURLConnection実際には、おそらくバックグラウンド スレッドで実行する必要はありません。ダウンロード操作は、メイン スレッドをブロックしません。実行ループで実行することにした場合NSURLConnection、おそらく最も簡単な方法は、NSOperationサブクラスを作成し、 の中に実行ループを作成することです-main

于 2012-05-10T13:26:07.080 に答える