objc一个NetConnector类示例
2015-07-01 20:05
274 查看
NetConnector是自定义的一个类,该类使用代理的方法实现异步下载特定url页面的内容。
HyNetConnector.h
HyNetConnector.m
main.m
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; }
相关文章推荐
- objc一个NetConnector类示例
- javaSE学习笔记之数据类型
- Android关于gridview平滑滚动定位smoothScrollToPositionFromTop方法测试
- leetcode-10 Regular Expression Matching
- objc一个NetConnector类示例
- 世界、明天、生活和我
- new与delete
- ExtJs中分页时带查询条件
- 如何手工释放linux内存
- maven scope含义的说明
- 斯坦福《机器学习》Lesson1-3感想-------1、机器学习的基本定义
- yii2-整合PayPal SDK 待测
- WebService到底是什么?
- Android 自定义开关控件
- Scala:Tuple、Array、Map与文件操作
- C# 课堂总结1-二进制转换
- Direct Compute Shader 处理图像
- SQL 远程过程调用失败【0x800706be】或正在关闭 【0x80041033】解决方法
- Proactor VS Reactor
- 控件getHeight和getWidth等于0的解决办法