2014-02-10 4 views
0

웹 페이지 html의 콘텐츠를 가져 오는 두 가지 방법이 있습니다. 어느 것을 사용해야합니까? 상황에 따라 둘 다 사용하는 방법에 대한 조언이 있습니까?initWithContentsOfURL : 인코딩 : 오류 : 대 stringWithContentsOfURL : 인코딩 : 오류 :

NSURL *url = [NSURL URLWithString:@"http://www.apple.co.jp/"]; 
NSError* error = [[NSError alloc] init]; 
NSString* content = [[NSString alloc] initWithContentsOfURL:url encoding:NSUTF8StringEncoding error:&error]; 
//NSString* content = [NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:&error]; 
NSLog(@"%@", content); 

감사합니다.

답변

1

initWithContentsOfURL:encoding:error:stringWithContentsOfURL:encoding:error의 차이점은 전자는 유지 된 개체를 반환하고 후자는 자동 렌더링 된 개체를 반환한다는 것입니다. ARC를 사용하는 경우에는 의미상의 차이가 없습니다.

당신은 두 방법 중 하나에 대한 NSError 객체를 할당 안, 당신은 항상 nil로 초기화해야합니다

NSError *error = nil; 
NSString* content = [[NSString alloc] initWithContentsOfURL:url encoding:NSUTF8StringEncoding error:&error]; 

이것은 당신이에 &error를 전달하는 방법은 prepouplated 개체를 처리하는 방법을 알고하지 않기 때문에 개체가 누출됩니다.

마지막으로 웹 페이지에서 데이터를로드하기 때문에 NSString 메서드를 사용하면 안되지만 NSURLSession에 언급 된 클래스 그룹을 사용해야합니다. 특히, NSURLRequest.