UIImage用imageWithData 和 imageWithContentsOfFile创建对象在内存管理上有啥区别?

75次阅读

如题。我看了一下帮助文档。说这两种方式都没有缓存图像数据,imageWithContentsOfFile是调用的时候去加载,imageWithData是从二进制数据创建。我想知道这两种方式创建的图像在内存管理上有啥区别?要怎样做才能比较好的释放内存。多谢

無赖非雅

看了下文档,思考了下,认为本质上没有什么区别。都没有缓存图像,内存管理就不应该去考虑图像问题,主要就是他们的图像的来源内存问题。

imageWithContentsOfFile:filePah 应该考虑的filePah的内存。
imageWithData:data 考虑是data的内存和data的filePath的内存。

如果都是从路径来初始化图像,imageWithContentsOfFile是直接将path装化为image。imageWithData是将path按照byte读取为data再转化为image。两者的效率区别我不知道。
还望各位解答。

navy

我理解ContentsOfFile创建出的内存可分页,imageWithData,imageNamed创建出的内存不可分页。应尽量使用contentsOfFile

另外,大图片读入内存应新建线程从文件读入后,用QuartzCore重画成小图片(和view大小相当的图片),再回主线程更新视图,参考http://segmentfault.com/q/10100000001…

OpenFibers

正文完