美文网首页
iOS UIImage初始化一张图片的方法及优缺点

iOS UIImage初始化一张图片的方法及优缺点

作者: deeper_iOS | 来源:发表于2016-12-27 21:54 被阅读78次

    方法一、

    UIImage *image = [UIImage imageNamed:@"test.png"];

    这个方法创建的图片是从缓存里面获取的,先在缓存里查看,看是不是有这个图片,没有的话见图片添加到缓存再使用。有的话直接使用缓存里面的。在程序中,如果这个图片要在多个地方使用的话,建议使用这个方法。缺点是:一旦加入到缓存中就一直占用内存,不能被释放掉。

    方法二、

    //读取本地图片路径

    NSString *imagePath=[NSString stringWithFormat:@"%@/Documents/

    %@.jpg",NSHomeDirectory(),@"test"];

    [UIImage imageWithContentsOfFile:imagePath];

    从手机本地读取,比较第一种方式,这个是直接加载图片的,图片不需要的时候,可以release掉。所以建议在使用重复率低的地方使用这种方法。

    方法三、

    // 下面的这种方式会出现卡线程的情况,所以建议在子线程中操作

    // imageWithData: data

    NSURL *url = [NSURL URLWithString:@“http://e.picphotos.baidu.com/album/s%3D550%3Bq%3D90%3Bc%3Dxiangce%2C100%2C100/sign=f51d2708cb11728b342d8c27f8c7b2f3/bba1cd11728b47109d0f5555c5cec3fdfc032302.jpg?referer=f55e30e2d71373f0ac285aaf8d00&x=.jpg"];

    UIImage *image2 = [UIImage imageWithData:[NSData dataWithContentsOfURL:url]];

    需要注意的是,如果imageWithData:是同步网络请求,如果在主线程直接使用的话,会卡主线程,因此一般不会在主线程中直接使用,而是采用异步网络请求获得data的值。

    相关文章

      网友评论

          本文标题:iOS UIImage初始化一张图片的方法及优缺点

          本文链接:https://www.haomeiwen.com/subject/vlbevttx.html