iOS加载图片imageName,imageWithContentsOfFile

原文
iOS 加载图片 imageWithContentsOfFile

1、使用imageName:加载图片

(1)加载内存当中之后,会一直停留在内存当中,不会随着对象的销毁而销毁。

(2)加载进去图片之后,占用的内存归系统管理,我们无法管理。

(3)相同的图片,图片不会重复加载。

(4)加载到内存中后,占据内存空间较大。

2、使用imageWithContentsofFile:加载图片

(1)加载到内存当中后,占据内存空间较小。

(2)相同的图片会被重复加载内存当中。

(3)对象销毁的时候,加载到内存中图片会随着一起销毁。

iOS7与iOS8的适配
1、[UIImage imageWithContentsOfFile:]路径需要加上沙盒路径以及你的文件名

例如我的:


    NSBundle *bundle = [NSBundle mainBundle];
    NSString *resourcePath = [bundle resourcePath];
    NSString *filePath = [resourcePath stringByAppendingPathComponent:@"[email protected]"];
    UIImage *image = [UIImage imageWithContentsOfFile:filePath];

2、iOS7:当从子bundle中读取图片时,文件名要加上@2xpng

    NSBundle *bundle = [NSBundle mainBundle];
    NSString *resourcePath = [bundle resourcePath];

    NSString *filePath = [resourcePath stringByAppendingPathComponent:@"cwrz_table_btn"];
    UIImage *image = nil;
    if (ksystemVeesion>=8.0) {
        image = [UIImage imageWithContentsOfFile:filePath];
    }else{
        image = [UIImage imageWithContentsOfFile:[filePath stringByAppendingString:@"@2x.png"]];
    }


你可能感兴趣的:(iOS加载图片imageName,imageWithContentsOfFile)