如题。我看了一下帮助文档。说这两种方式都没有缓存图像数据,imageWithContentsOfFile是调用的时候去加载,imageWithData是从二进制数据创建。我想知道这两种方式创建的图像在内存管理上有啥区别?要怎样做才能比较好的释放内存。多谢
如题。我看了一下帮助文档。说这两种方式都没有缓存图像数据,imageWithContentsOfFile是调用的时候去加载,imageWithData是从二进制数据创建。我想知道这两种方式创建的图像在内存管理上有啥区别?要怎样做才能比较好的释放内存。多谢
我理解ContentsOfFile创建出的内存可分页,imageWithData,imageNamed创建出的内存不可分页。应尽量使用contentsOfFile
另外,大图片读入内存应新建线程从文件读入后,用QuartzCore重画成小图片(和view大小相当的图片),再回主线程更新视图,参考http://segmentfault.com/q/10100000001...
2 回答1.1k 阅读
1 回答1.2k 阅读✓ 已解决
1 回答2.8k 阅读
1 回答1.4k 阅读
1.7k 阅读
1 回答960 阅读
1 回答797 阅读
看了下文档,思考了下,认为本质上没有什么区别。都没有缓存图像,内存管理就不应该去考虑图像问题,主要就是他们的图像的来源内存问题。
imageWithContentsOfFile:filePah 应该考虑的filePah的内存。
imageWithData:data 考虑是data的内存和data的filePath的内存。
如果都是从路径来初始化图像,imageWithContentsOfFile是直接将path装化为image。imageWithData是将path按照byte读取为data再转化为image。两者的效率区别我不知道。
还望各位解答。