iOS内存优化(持续更新)

   在iphone开发过程中,代码中的内存泄露我们很容易用内存检测工具leaks 检测出来,并一一改之,但有些是因为ios 的缺陷和用法上的错误,leaks 检测工具并不能检测出来,你只会看到大量的内存被使用,最后收到didReceiveMemoryWarning,最终导致程序崩溃。以下是开发过程中遇到的一些问题和网上的一些资料,总结了一下:

UIImage如何加载图片


用UIImage加载本地图像最常用的是下面三种:

1、imageNamed

UIImage *image = [UIImage imageNamed: imageName];

这种方式初学者用的最多,因为方便,但是它会把每次加载出来的图片放入内存中缓存起来,如果图片非常多,非常容易造成程序卡,甚至崩溃。但是如果有一些图片要经常被使用,那么使用这个方法效率会很高。一般不使用。

2、imageWithContentsOfFile

NSString *fullPath = [[NSBundle mainBundle] pathForResource: imageName ofType:nil];
    UIImage *image = [UIImage imageWithContentsOfFile: fullPath];

这个方法加载图片是不会缓存的,最多的使用这个。

3、initWithContentsOfFile

UIImage *image = [[UIImage alloc] initWithContentsOfFile: imageName];

这个方法需要手动release掉,不系统缓存。release后立即被释放,一般用在封面等图比较大的地方。


参考资料:http://blog.csdn.net/sqq521/article/details/13628749

上一篇:7、进程间通信-剪贴板


下一篇:linux命令 — lsof 查看进程打开那些文件 或者 查看文件给那个进程使用