NetConnector是自定义的一个类,该类使用代理的方法实现异步下载特定url页面的内容。
HyNetConnector.h
//
// HyNetConnector.h
// HyNetConnector
//
// Created by kinds on 15/7/1.
// Copyright (c) 2015年 hopy. All rights reserved.
//
#import <Foundation/Foundation.h>
@interface HyNetConnector : NSObject
@property NSURLConnection *conn;
@property (readonly) BOOL is_finished;
@end
HyNetConnector.m
//
// HyNetConnector.m
// HyNetConnector
//
// Created by kinds on 15/7/1.
// Copyright (c) 2015年 hopy. All rights reserved.
//
#import "HyNetConnector.h"
@implementation HyNetConnector
-(id)init{
if(self = [super init]){
NSURL *url = [NSURL URLWithString:@"http://www.baidu.com"];
NSURLRequest *req = [NSURLRequest requestWithURL:url];
_is_finished = false;
_conn = [[NSURLConnection alloc] initWithRequest:req delegate:self
startImmediately:YES];
}
return self;
}
-(void)connectionDidFinishLoading:(NSURLConnection *)connection{
NSLog(@"%s:finish loading!",__func__);
_is_finished = true;
}
-(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data{
//NSLog(@"%s:recv %@(%lu)",__func__,data,data.length);
NSLog(@"%s:recv len %lu",__func__,data.length);
}
@end
main.m
//
// main.m
// HyNetConnector
//
// Created by kinds on 15/7/1.
// Copyright (c) 2015年 hopy. All rights reserved.
//
#import <Foundation/Foundation.h>
#import "HyNetConnector.h"
int main(int argc, const char * argv[]) {
@autoreleasepool {
HyNetConnector *nc = [HyNetConnector new];
NSLog(@"%@",nc);
while(!nc.is_finished){
NSDate *date = [NSDate dateWithTimeIntervalSinceNow:.5];
[[NSRunLoop currentRunLoop]runUntilDate:date];
}
NSLog(@"It's over...");
}
return 0;
}