0

私はこのコードを使用しています:

NSString *recievedData;

NSURLRequest *theRequest=[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.site.com/"]
                                          cachePolicy:NSURLRequestUseProtocolCachePolicy
                                      timeoutInterval:60.0];
// create the connection with the request
// and start loading the data
NSURLConnection *theConnection=[[NSURLConnection alloc] initWithRequest:theRequest delegate:self];
if (theConnection) {
    // Create the NSMutableData to hold the received data.
    // receivedData is an instance variable declared elsewhere.
    recievedData = [NSMutableData data];

    NSLog(@"%@", recievedData);
} else {
    // Inform the user that the connection failed.
    NSLog(@"Unsuccessful.");
}

これの修正版です

私の問題は、それが常に返されることです

<>

インターネットに接続しているかどうかに関係なく、常に成功します。

4

2 に答える 2

0

データを受け取っていません。受け取ったデータを保持するオブジェクトをインスタンス化しただけです。応答と失敗を処理するためにデリゲート メソッドを実装する必要があり、通常は NSURLConnection を非同期で使用するのが最善です。

NSURLConnection を使用するコード例がいくつかあります

于 2012-05-13T18:14:09.923 に答える
0

NSURLConnection はそのようには機能しません。接続を開始し、データが受信されるとコールバックを受信します。

リモート データを取得するための単純な呼び出しが必要な場合は、NSData の dataWithContentsOfURL メソッドを使用します。ただし、セカンダリ スレッドでのみ使用する必要があります。そうしないと、呼び出し中にユーザー インターフェイスがロックされ、時間がかかりすぎるとシステムがアプリを終了する可能性があるためです。

NSURLConnection exampleで完全なコードを参照してください。

于 2012-05-13T18:06:16.420 に答える