iphone - 使用 UIImage 时的内存管理

标签 iphone cocoa-touch memory-management

我的应用程序大量使用 UIImage 对象来根据用户输入和之前设置的图像更改单个 UIImageView 上的图像。我使用 [UIImage imageNamed:] 来创建我的 UIImage 对象。

我想这不是使用 UIImage 的最佳方式,因为我的内存使用量随着时间的推移不断增加并且永远不会下降。 (当我使用对象分配运行应用程序时才知道这一点,而且我没有使用其他 NSString 变量,只有 BOOL 和 UIImage)

我应该如何有效地使用 UIImage 和 UIImageView 对象来保持较低的内存?

谢谢

最佳答案

[UIImage imageNamed:] 

缓存您正在加载到内存中的图像。如果您想一遍又一遍地重复使用同一组图像,这非常有用,但如果您不断地显示不同(或大)的图像,那么您应该使用:

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

[UIImage imageWithData:imageData];

相反。

关于iphone - 使用 UIImage 时的内存管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/420031/

相关文章:

ios - 如何使用 Objective C 根据设备方向更改 UIView 约束?

html - 部署后响应式设计在 iPhone 上不起作用

iphone - 用于 arm7/iOS 4.3 的 pjsip 构建 - 在 mips_test.o 中找不到符号

ios - 获取电子邮件并命名 Facebook SDK v4.4.0 Swift

c++ - 最小化广度优先搜索的内存使用

iphone - 如何从 Facebook 中退出我的 iOS 应用程序 - 就像真的退出一样。 iOS 设备使用我的应用无法忘记的 Safari cookie

ios - 如何将 Cocoa Touch 静态库链接到 MonoTouch 项目?

iphone - 当我只有 IPA 文件时,如何制作应用程序的演示视频?

c - 动态内存分配问题(C语言)

c++ - 动态创建 std::string 时调用两次 'new'