iOS开发:图片的异步加载

iOS开发:图片的异步加载


目的:为了加速图片加载,减少冗余。

方法:可将加载图片过程异步加载,使用代理传值传回主界面,进行使用!

重点:代理传值:从后一个界面传值到前一个界面

实现过程:

1.在第二个界面声明一个协议方法

(1).协议格式:


(2).具体实例

@protocol ImageLoadingDelegate <NSObject>

- (void)loadImage:(UIImage *)image;

@end

2.规定代理人属性

(1).@property(nonatomic, assign)id <ImageLoadingDelegate>testDelegate;

   (2).声明一个加载方法,用来实现赋值

- (void)loadImageWithURLString:(NSString *)urlString;

3.异步加载

(1).实现代理方法

- (void)loadImageWithURLString:(NSString *)urlString{

//实际上就是一个block的Get请求过程,将解析得到的data传回首页

    NSString *strEncode = [urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

    NSURL *url = [NSURL URLWithString:strEncode];

    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];

    [NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) {

       //将解析得到的data传给代理人,谁签了这个代理就得到了这个data

        [self.testDelegate loadImage:[UIImage imageWithData:data]];

           }];

   }

4.在首页签协议,并使用data赋值<ImageLoadingDelegate>
SecondViewController *sVC = [ [SecondViewController alloc] init];
sVC.testDelegate = self; //用第二页的对象
//调用代理方法,实现网络请求
[sVC loadImageWithURLString:imageURL]; //imageURL是一个宏定义的网址



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值