+ (UIImage *)imageNamed:(NSString *)name; 
- (instancetype)initWithContentsOfFile:(NSString *)path;一个类方法,一个实例方法,
为什么第一个的内存越积越多,第二个基本不会变呢?
有了解内部实现的前辈么? 

解决方案 »

  1.   

    主要是这两个方法的区别
    + (UIImage *)imageNamed:(NSString *)name; 
    这个类方法它返回的对象会保存在缓存中,只有退出程序才会释放内存;但下一次调用快。而实例方法
    - (instancetype)initWithContentsOfFile:(NSString *)path;
    它返回的对象不会保存在缓存中,一旦对象销毁就会释放内存所以你可以根据自己的需要选择合适的方法。
      

  2.   

    你加载的是本地的图片,我推荐用第一种,缓存读起来更快,其实也不会越用越多,你看看你的App bundle,就知道本地图片最多占用的内存量了