2012-05-11 2 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을 확인할 수 있습니다.

1

이 코드는 네트워크 밖으로 때 크게 전력 소비 것으로 보인다 : 당신이 도달 할 수없는 무언가를 다운로드 만 번을 시도 할 것이다 ...

은 ( http://developer.apple.com/library/ios/#samplecode/Reachability/Introduction/Intro.html)를 애플에서 제공하는 도달 가능성 클래스에서보세요 . ARCified 버전은 gitHub에서 찾을 수 있습니다 (예 : https://github.com/tonymillion/Reachability).

아이디어는 네트워크 연결 가능성에 대한 알림을 등록하는 것입니다.

그래서 코드에서 :

  1. 확인 네트워크 자원의 가용성을 원하는 문자열을 검색하기 전에. 이 사용할 수있는 경우
  2. 는 클라이언트 측을 검색하는 동안
  3. 코드에서 = 오류에 대한 귀하의 문자열을 확인하면서 (TRUE)없이 코드를 사용

네트워크를 사용할 수없는 경우 ' 네트워크에 도달 할 수 없다는 것을 사용자에게 알리고 예를 들어 다시 도달 할 수있게되는 즉시 문자열을 검색하기위한 도달 가능성 알림에 등록해야합니다.