自定义NSOperation,并从网络上获取图片的一点小心得

1.新建一个类 继承于NSOperation,重写-(void)main方法。值得注意的是main方法是系统自动调用的

2.在子线程中 操作网络获取图片的操作,并用block方式将网络上获取的图片传递给主线程的控制器。

-(void)main{

NSURL*url = [NSURLURLWithString:self.URLString];

NSData*data = [NSDatadataWithContentsOfURL:url];

UIImage*image = [UIImageimageWithData:data];

if(self.myBlock) {

self.myBlock(image);

}

}

3.在主线程中修改UI界面。对获获取自定义的blockOpera方法进行了封装

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent*)event{

NSLog(@"123");

NSOperationQueue*operaQueue = [[NSOperationQueuealloc]init];

CYWOperation*blockOpera = [CYWOperationinitWithOperation:@"http://b.hiphotos.baidu.com/image/h%3D200/sign=7a9f8d984f36acaf46e091fc4cd88d03/bd3eb13533fa828b176e5342f91f4134960a5ac6.jpg"withBlock:^(UIImage*image) {

self.imageView.image= image;

}];

[operaQueueaddOperation:blockOpera];

}

封装方法

+ (instancetype)downLoadImageWithURLString:(NSString*)URLString successBlock:(void(^)(UIImage*))successBlock{

HMDownLoadImageOperation*downLoadImageOperation = [[HMDownLoadImageOperationalloc]init];

downLoadImageOperation.innerURLString= URLString;

downLoadImageOperation.innerSuccessBlock= successBlock;

returndownLoadImageOperation;

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容