相关疑难解决方法(0)

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

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

[UIImage imageNamed:fullFileName]
Run Code Online (Sandbox Code Playgroud)

要么:

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

[UIImage imageWithData:imageData];
Run Code Online (Sandbox Code Playgroud)

我更喜欢第一个,因为它的代码少得多,但是我看到有些人说图像被缓存了,而且这个方法使用了更多的内存?由于我不相信大多数其他论坛上的人,我想我会在这里问这个问题,是否有任何实际的区别,如果是的话哪个更"好"?

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

iphone cocoa-touch

65
推荐指数
5
解决办法
5万
查看次数

img_data_lock iphone - imageNamed vs imageWithContentsofFile

我注意到内存激增,仪器中列出的负责调用者是img_data_lock和负责的库CoreGraphics.

我一直在读这个问题与缓存与未缓存的图像加载有关([UIImage imageNamed ...]和[UIImage imageWithData ...]之间的差异?)目前我的应用程序通过以下方式加载一系列图像imageNamed

替换imageNamed呼叫imageWithContentsOfFile似乎解决了这个问题.

有没有人有关于img_data_lock调用者的任何信息?如果有人imageNamed对内存造成这样的损失,为什么会有人使用?

iphone memory-management

3
推荐指数
1
解决办法
5250
查看次数

标签 统计

iphone ×2

cocoa-touch ×1

memory-management ×1