您的位置:首页 > 其它

objc一个NetConnector类示例

2015-07-01 20:05 274 查看
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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: