博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
自定义NSOperation 操作
阅读量:6702 次
发布时间:2019-06-25

本文共 1026 字,大约阅读时间需要 3 分钟。

hot3.png

#import <Foundation/Foundation.h>

HMDownloadOperation;

HMDownloadOperationDelegate <NSObject>

@optional

- (void)downloadOperation:(HMDownloadOperation *)operation didFinishDownload:(UIImage *)image;

HMDownloadOperation : NSOperation

@property (nonatomic, copy) NSString *imageUrl;

@property (nonatomic, strong) NSIndexPath *indexPath;

@property (nonatomic, weak) id<HMDownloadOperationDelegate> delegate;

@end

#import "HMDownloadOperation.h"

@implementation HMDownloadOperation

- (void)main

{

    @autoreleasepool {

        if (self.isCancelled) return;

        

        NSURL *url = [NSURL URLWithString:self.imageUrl];

        NSData *data = [NSData dataWithContentsOfURL:url]; // 下载

        UIImage *image = [UIImage imageWithData:data]; // NSData -> UIImage

        

        if (self.isCancelled) return;

        

        // 回到主线程

        [[NSOperationQueue mainQueue] addOperationWithBlock:^{

            if ([self.delegate respondsToSelector:@selector(downloadOperation:didFinishDownload:)]) {

                [self.delegate downloadOperation:self didFinishDownload:image];

            }

        }];

    }

}

@end

转载于:https://my.oschina.net/daniels/blog/539031

你可能感兴趣的文章
whu oj 1551 Pairs (莫队算法)
查看>>
BZOJ3424 : Poi2013 Multidrink
查看>>
eclipse 预览Android界面报错
查看>>
iOS:iOS开发系列–打造自己的“美图秀秀”(中)
查看>>
keepalived对nginx高可用演练脚本
查看>>
swift实现ios类似微信输入框跟随键盘弹出的效果
查看>>
【转】人生应该接受的教育
查看>>
Android NDK 同时编译多个Module
查看>>
poi API
查看>>
8 -- 深入使用Spring -- 2...2 指定Bean的作用域
查看>>
MapReduce实战(一)自定义类型
查看>>
切换横屏幕 onCreate 多次执行问题
查看>>
A guide to analyzing Python performance
查看>>
export,source
查看>>
Android添加全屏启动画面
查看>>
6月最后一天
查看>>
使用注解校验参数
查看>>
CSU1256 天朝的单行道(spfa)
查看>>
程序猿的还有一出路:大数据project师
查看>>
洛谷P3375 【模板】KMP字符串匹配
查看>>