//1.创建一个工程文件,在新建一个cocoa touch framework
在UIImageView+LoadImageURL.m中添加方法
- (void)bh_setImageUrl:(NSURL *)url{
//全局队列
dispatch_queue_t globalQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
//主队列
dispatch_queue_t mainQueue = dispatch_get_main_queue();
//异步加载网络资源
dispatch_async(globalQueue, ^{
//根据URL获取到图片data
NSData *data = [NSData dataWithContentsOfURL:url];
//data -> UIImage
UIImage *image = [UIImage imageWithData:data];
//主线程更新ui
dispatch_sync(mainQueue, ^{
self.image = image;
});
});
}
在UIImageView+LoadImageURL.h中声明方法
//根据URL加载资源
- (void)bh_setImageUrl:(NSURL *)url;
在BHImage.h中导入系统库
#import <UIKit/UIKit.h>
//然后选择设备,分别选择真机与模拟器运行一次,然后点击BHImaga.framework 右键show in finder
就会看到有模拟器与真机的两个BHImage.framework了
然后打开终端,输入lipo -create 模拟器的BHImage路径 真机BHImage路径 -output 新建的文件夹的路径/BHImage
这里注意,输入命令的时候中间有空格,最后没有空格
//然后打开你新建的文件夹就会看到一个BHImage,然后将模拟器的BHImage.framework复制到新建文件夹下
在新建文件夹中BHImage.framework中的BHImage替换为新建文件夹中的BHImage
//使用BHImage.framework的时候,先将BHImage.framework拖入工程,再去Build Settings设置
在使用的时候导入头文件
#import <BHImage/BHImage.h>
<pre name="code" class="objc">//根据URL 获取图片
- (void)loadImage
{
for (int i = 0; i < self.datasource.count; i++) {
UIImageView *imageV = self.imageStore[i];
NSString *urlStr = self.datasource[i];
NSURL *url = [NSURL URLWithString:urlStr];
[imageV bh_setImageUrl:url];//使用自定义方法
}
}