그래서 저는 자바에서 웹 사이트의 렌더링 된 HTML 소스 코드를 읽는 데 많은 경험을했습니다. 그러나 Objective-C에서 정확히 동일한 작업을 수행하는 방법을 철저히 조사하고 작동해야하는 솔루션을 제시 할 수는 있었지만 실제로는 그렇지 않습니다. 아이디어는 각 행을 읽으려는 것입니다. 예를 들면 "view-source : www.apple.com", 그 행의 결과를 한 줄씩 읽길 원합니다.Objective-C에서 렌더링 된 html 코드를 한 줄씩 어떻게 읽습니까?
NSString *s = [NSString stringWithFormat:@"http://www.apple.com"];
NSURL *url = [NSURL URLWithString:s];
NSInputStream *iStream= [[NSInputStream alloc] initWithURL:url];
[iStream setDelegate:self];
[iStream scheduleInRunLoop:[NSRunLoop currentRunLoop]
forMode:NSDefaultRunLoopMode];
[iStream open];
NSLog(@"stream successfully opened");
NSInteger result;
uint8_t buffer[1024];
while((result = [iStream read:buffer maxLength:1024]) != 0) {
if(result > 0) {
NSLog(@"Buffer is %@",buffer);
// buffer contains result bytes of data to be handled
} else {
NSLog(@"ERROR: %@",buffer);
// The stream had an error. You can get an NSError object using [iStream streamError]
}
NSLog(@"end of while loop: %@",buffer);
}
// Either the stream ran out of data or there was an error
NSLog(@"Either the stream ran out of data or there was an error");
이 실행되고 잘 컴파일,하지만 결과는 내가 연구의 AA 많은 일을 한 또 항상 0이고 내가 안 : 나는이 내가 가지고있는 어떤 HTML 파서 등 을 원하지 않는 왜 결과가 0인지 이해하십시오. 어떤 도움을 주시면 감사하겠습니다.
이 다른 솔루션은 작동했습니다 ... NSString * s = [NSString stringWithFormat : @ "http://www.apple.com"]; NSURL * url = [NSURL URLWithString : s]; \t \t NSData * data = [NSData dataWithContentsOfURL : url]; \t는 NSString가 newStr * = [있는 NSString ALLOC] initWithData : 데이터 \t \t \t \t \t \t \t \t \t \t \t 인코딩 : NSUTF8StringEncoding]; \t NSLog (@ "data : % @", newStr); 비록 비효율적 인 것처럼 페이지 단위로 줄을 읽었을 지 모르지만 나는 받아 들일 것입니다. – Jessicardo