Model类与ImageDownLoader
来源:互联网 发布:mysql数据库同步工具 编辑:程序博客网 时间:2024/05/16 15:43
哈喽 我又来了 咱们继续上一个话题 – 用ImageDownLoader去请求网络图片
ImageDownLoader的类封装好了 咱们离成功还有…..额…..一半 = = !
不过没关系 逻辑清晰明了!
好了 让我们进入主题:
在请求下来的文字JSON 文件中 会存在一段图片网址字符串 它告诉我们 要得到图片 就要用这段字符串去网络上请求
JSON文件里的数据通常是用Model的属性去保存的 当然也会保存这段网址字符串啦 我们假设这个属性名叫image
现今我们要将Model的数据展现在TableView上 那么需要很多个对应于cell的Model 这些Model都需要通过ImageDownLoader类去获取图片data 我们可以将ImageDownLoader初始化在cell的创建方法中 然后在controller类中实现协议方法 设置个属性去接收数据 然后给cell的imageView.image赋值 不过这样做不符合封装性 我们可以将这一切都封装在model中
现在 model类中除了之前的一些属性外 还需要设置一个UIImage类的属性 用以接收data
#import <Foundation/Foundation.h>#import <UIKit/UIKit.h>#import "ImageDownLoader.h"@interface ActivityModel : NSObject// 用于接收data(data可以直接转化为Image) @property (nonatomic, retain) UIImage *coverImage;// 这个属性是用于解决复用问题的 作用是记录model的请求图片状态@property (nonatomic, assign) BOOL isDownLoading;// model 通过此方法用 网址字符串 去请求图片data 并赋给coverImage;- (void)downLoadImage;@end
// model 的方法实现- (void)downLoadImage;{ // 将ImageDownLoader初始化方法封装在此 // 当model调用downLoadImage方法时 那么就可以把model的图片网址字符串传到此处进行请求了 // 当然 ImageDownLoaderDelegate协议的代理就设置成model了 self.imageDownLoader = [[ImageDownLoader alloc] initWithUrl:self.image delegate:self]; // 开始请求 [self.imageDownLoader start]; // 将请求状态标记为YES self.isDownLoading = YES; // 释放 [_imageDownLoader release];}// ImageDownLoaderDelegate的协议方法- (void)imageDownLoadFailedWithError:(NSError *)error{ NSLog(@"%@",error); // 请求失败了 那么也就不在请求了 self.isDownLoading = NO;}// 一旦链接已经完成加载(data已经接收完全) 就触发这个方法 -- 将data通过协议方法传过来- (void)imageDownLoadSucceedWithData:(NSData *)data{ // 用这个data给coverImage 赋值 self.coverImage = [UIImage imageWithData:data]; // 请求成功了 当然也就不在请求了 self.isDownLoading = NO;}
0 0
- Model类与ImageDownLoader
- ImageDownloader
- 字典与Model类
- model与Model
- iOS 图片下载封装 ImageDownloader
- C#model类与XML转换类
- Model类
- Model类
- Model基类与字典中嵌套数组时Model的处理方法
- model与数据库有一腿!
- Topic Model 与 LDA
- JSON与MODEL互转
- 字典与model
- JSON与MODEL互转
- JSON与MODEL互转
- Django--Model与ORM
- generative model 与 discriminative model 进一步理解
- asp.net MVC中的@model与Model
- android Bluetooth的实现蓝牙操作
- 代理模式
- iOS 的播放影片
- Matlab中读取txt文本文档
- c++中的异常捕捉try和catch
- Model类与ImageDownLoader
- Eclipse Android device Target unknown
- Jsp语法结构
- ubuntu下源码安装bochs
- View的事件体系
- Light OJ 1078:Integer Divisibility【数学】
- 分享彩色图像拼接程序
- Code Forces 591 B. Rebranding(简单模拟)
- Rpi内核编译中的问题