2012-05-11 3 views
0

このコードでは、接続するまでネットワークが悪いときに再接続しようとしています。ネットワークが悪いときにstringWithContentsOfURLメソッドを使用して処理したいですか? in ios

NSString * szURL =[NSString stringWithFormat:@"http://soxxx9.cafe24.com/event.php"]; 

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

    NSString *strData; 
    while(TRUE) 
    { 
    NSError *error = nil; 

    strData= [NSString stringWithContentsOfURL:url 
              encoding:NSUTF8StringEncoding 
               error:&error]; 
    if(!error) 
    break; 

    NSLog(@"error occur"); 
    [strData release]; 
    strData=nil; 
} 

このコードは正しいですか?

これはメモリの警告が発生していませんか?

もっと良い方法があれば、私に教えてください。

答えて

0

接続を処理するクラスが必要です。このようにして、何が起こっているのかをより詳細に制御できます。 MKNetworkKitは解決策です。確認するにはhereです。あなたは到達できない何かをダウンロードするために百万回を試してみましょう...

は、アップル(http://developer.apple.com/library/ios/#samplecode/Reachability/Introduction/Intro.html)が提供する、到達可能性クラスを見てください:

1

このコードは、ネットワークが出ている時に重く、電力消費のようです。 ARCifiedバージョンはgitHubにあります(例えばhttps://github.com/tonymillion/Reachability)。

考えられるのは、ネットワークの到達可能性に関する通知を登録することです。

だから、あなたのコード内:

  1. チェックネットワークリソースの可用性したい文字列を取得する前に。これが利用可能な場合
  2. は、クライアント側でそれを取得中
  3. はあなたのコードに=すべてのエラーのためにあなたの文字列をチェックしながら、(TRUE)せずに、コードを使用し

ネットワークが利用できない場合は、あなたの」ネットワークに到達できないことをユーザーに通知し、例えば到達可能になるとすぐに文字列を取得するための到達可能性通知を登録する必要があります。

関連する問題