NSURLConnection
과 그 대리자 방법을 고려해보십시오. 이를 사용하여 다운로드 상태를 확인할 수 있습니다.
@interface
...
NSURLConnection *connectionInProgress;
NSData *googleRequestResponseData;
NSURL *googleURL;
...
@implementation
...
- (void) setUpRequest {
googleURL = [[NSURL URLWithString:@"http://www.google.com/"] retain];
googleRequestResponseData = [[NSMutableData data] retain];
NSURLRequest *request = [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestReturnCacheDataElseLoad timeoutInterval:30.0];
connectionInProgress = [[NSURLConnection alloc] initWithRequest:request delegate:self startImmediately:YES];
}
#pragma mark NSURLConnection delegate methods
- (void) connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {
[googleRequestResponseData appendData:data];
}
- (void) connectionDidFinishLoading:(NSURLConnection *)connection {
[web_screen loadData:googleRequestResponseData MIMEType:@"application/octet-stream" textEncodingName:@"utf-8" baseURL:googleURL];
NSString *js_result = [web_screen stringByEvaluatingJavaScriptFromString:@"document.getElementsByTagName('input')[1].value='test';"];
NSLog (js_result);
[googleURL release];
[googleRequestResponseData release];
[connectionInProgress release];
connectionInProgress = nil;
}
- (void) connection:(NSURLConnection *)connection didFailWithError:(NSError *)error {
NSLog (@"Connection failed to load data from Google!");
[googleURL release];
[googleRequestResponseData release];
[connectionInProgress release];
connectionInProgress = nil;
}
대안 비동기 다운로드 (
ASINetworkQueue
참조 상세)에 간단한 방식을 포함하는 벤 Copsey의
ASIHTTPRequest 래퍼를 확인.
요청 다운로드가 완료되면 ASINetworkQueue
을 사용하여 원하는 방법 (예 : 자바 스크립트 코드 실행)을 실행할 수 있습니다.
에 대한
확인이. –