---------------封装请求--------------------
CustomRequest类 .h
#import <UIKit/UIKit.h>
typedef void(^FilishLoadBlock)(NSData *);
@interface CustomRequest : UIViewController<NSURLConnectionDataDelegate,NSURLConnectionDelegate>
@property (retain, nonatomic) NSURLConnection *connection;
@property (retain, nonatomic) NSMutableData *dataSource;
@property (copy, nonatomic) FilishLoadBlock filishLoadBlock;
-(void)startRequstWithParm:(NSDictionary *)parm url:(NSString *)urlStr;
@end
#import "CustomRequest.h"
@interface CustomRequest ()
@end
@implementation CustomRequest
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
}
return self;
}
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
}
-(void)startRequstWithParm:(NSDictionary *)parm url:(NSString *)urlStr
{
[NSURLConnection connectionWithRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:urlStr]] delegate:self];
}
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
if (_dataSource == nil) {
_dataSource = [[NSMutableData alloc] initWithCapacity:5];
}
[_dataSource appendData:data];
}
- (void)connectionDidFinishLoading:(NSURLConnection *)connection
{
if (_dataSource) {
self.filishLoadBlock(_dataSource);
}
}
#import <UIKit/UIKit.h>
typedef void(^completBlock)(NSString *);
@interface ViewController : UIViewController
- (void)startRequstWithUrl:(NSString *)url completBlock:(completBlock)block;
@end
#import "ViewController.h"
#import "CustomRequest.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}
- (void)startRequstWithUrl:(NSString *)url completBlock:(completBlock)block
{
CustomRequest *customRequest = [[CustomRequest alloc] init];
customRequest.filishLoadBlock = ^(NSData *data)
{
id ret = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];
block(ret);
};
[customRequest startRequstWithParm:nil url:url];
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
---------------调用----------------------------
#import "AppDelegate.h"
#import "ViewController.h"
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
self.viewController = [[ViewController alloc] initWithNibName:@"ViewController_iPhone" bundle:nil];
} else {
self.viewController = [[ViewController alloc] initWithNibName:@"ViewController_iPad" bundle:nil];
}
self.window.rootViewController = self.viewController;
[self.window makeKeyAndVisible];
[self.viewController startRequstWithUrl:@"http://www.weather.com.cn/data/sk/101010300.html" completBlock:^(NSString *dd) {
NSLog(@"dd:%@",dd);
}];
return YES;
}