Convert NSData bytes to NSString?の記事、特に@ christo16のおかげで感謝しています。以前はPHPサーバーから価値を得るためにASIHttpRequestに依存していました。今すぐ次のコード行を使用してください:NSDataのdataWithContentsOfURLがNULL値を返すのはなぜですか?
NSString *pageContents = [NSData dataWithContentsOfURL: [NSURL URLWithString:@"http://www.apple.com"]]
私は望む機能を得ることができます。
しかし、なぜその行によってpageContentsがNULLになるのでしょうか。私はすでにこの行を次のように変更しています:
NSString *fullUrl = [NSString stringWithFormat:@"http://www.apple.com"];
NSURL *url = [[NSURL alloc] initWithString:fullUrl];
NSData *pageContents;
NSString *response = NULL;
while(response==NULL)
{
pageContents = [NSData dataWithContentsOfURL: [NSURL URLWithString:fullUrl]];
response = [NSString stringWithUTF8String:[pageContents bytes]];
NSLog(@"content = %@", response);
}
これを実行する方法はありますか?今までは問題ありません。私はデータを取得するときにエラーが発生した場合にはnil
を返します同じ結果を達成するための、よりエレガントな方法があるかどうかを
おかげ
この1ライナーの欠点は、おそらく長い間あなたのUIをブロックすることです。ループがさらに悪化します。サーバーが接続に応答していない場合は、UIが効果的にブロックされます(SpringBoardが疲弊してプロセスを停止するまで)。その情報については –