#import "MyAppDelegate.h"
#import "UIImageView+catchImage.h"
#import "MyImageView.h"
@implementation MyAppDelegate
- (void)dealloc
{
[_window release];
[super dealloc];
}
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
// Override point for customization after application launch.
self.window.backgroundColor = [UIColor whiteColor];
[self.window makeKeyAndVisible];
UIImageView *imageView=[[UIImageView alloc]initWithFrame:CGRectMake(60, 20, 200, 120)];
[imageView setImageUrl:[NSURL URLWithString:@"cbc17b3825c0ba6197ddd8fe.html"]];
[self.window addSubview:imageView];
#import <UIKit/UIKit.h>
@interface UIImageView (catchImage)
-(void)setImageUrl:(NSURL *)url;
@end
#import "UIImageView+catchImage.h"
@implementation UIImageView (catchImage)
-(void)setImageUrl:(NSURL *)url
{
/*
//使用同步请求
NSMutableURLRequest *request=[[NSMutableURLRequest alloc]init];
[request setHTTPMethod:@"GET"];
[request setURL:url];
[request setTimeoutInterval:60];
NSURLResponse *response;
//发送同步请求
NSData * data= [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:nil];
UIImage *image=[UIImage imageWithData:data];
self.image=image;
*/
NSMutableURLRequest *request=[[NSMutableURLRequest alloc]init];
[request setHTTPMethod:@"GET"];
[request setURL:url];
[request setTimeoutInterval:60];
//发送异步请求
NSOperationQueue *queue=[[NSOperationQueue alloc]init];
[NSURLConnection sendAsynchronousRequest:request queue:queue completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) {
UIImage *image=[[UIImage alloc]initWithData:data];
// BOOL ismain=[NSThread isMainThread];
// if (ismain) {
// NSLog(@"主线程");
// self.image=image;
//或者让主线程做
dispatch_async(dispatch_get_main_queue(), ^{
BOOL ismain=[NSThread isMainThread];
if (ismain) {
NSLog(@"主线程");
}
self.image=image;
});
}];
}
@end