gpt4 book ai didi

iphone - [UIImage imageNamed...] 和 [UIImage imageWithData...] 之间的区别?

转载 作者:行者123 更新时间:2023-12-03 18:09:26 26 4
gpt4 key购买 nike

我想从文件系统将一些图像加载到我的应用程序中。有两种简单的方法可以做到这一点:

[UIImage imageNamed:fullFileName]

或者:

NSString *fileLocation = [[NSBundle mainBundle] pathForResource:fileName ofType:extension];
NSData *imageData = [NSData dataWithContentsOfFile:fileLocation];

[UIImage imageWithData:imageData];

我更喜欢第一个,因为它的代码少了很多,但是我看到有人说图像被缓存了,这个方法使用更多的内存?由于我不信任大多数其他论坛上的人,我想我应该在这里问一个问题,是否有任何实际差异,如果有的话哪个“更好”?

我尝试使用对象分配工具分析我的应用程序,但我看不到任何实际差异,尽管我只在模拟器中尝试过,而不是在 iPhone 本身上尝试过。

最佳答案

这取决于您对图像的处理方式。 imageNamed: 方法确实会缓存图像,但在许多情况下这将有助于内存使用。例如,如果您加载图像 10 次以与 TableView 中的某些文本一起显示,UIImage 将仅在内存中保留该图像的单个表示形式,而不是分配 10 个单独的对象。另一方面,如果您有一个非常大的图像并且不重复使用它,您可能需要从数据对象加载该图像,以确保完成后将其从内存中删除。

如果你没有任何巨大的图像,我不会担心。除非您发现问题(并且对检查对象分配而不是抢先优化感到荣幸),否则我会选择更少的代码行而不是可忽略的内存改进。

关于iphone - [UIImage imageNamed...] 和 [UIImage imageWithData...] 之间的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/316236/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com