我试图理解为什么我在 UIImage 和 UIImageView 的一个非常基本的实现中存在内存泄漏。
在这种情况下,我没有使用 ARC(正确禁用)。
我的代码非常简单:
UIImage *image = [UIImage imageNamed:@"my_image.jpg"];
UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
[[self view] addSubview:imageView];
[imageView release];
我在viewDidLoad:
UIViewController 的方法中实现此代码。
通过调用imageNamed:
UIImage 的方法,我知道我会得到一个我不拥有的对象/一个自动释放对象。该对象也将被之后实例化的 UIImageView 对象保留。所以我拥有的唯一对象是 UIImageView 对象。
使用 Memory Leaks Instruments 运行此应用程序后,我有此报告:
我听说过运行的缓存系统,但我不应该有内存泄漏,因为缓存了一些数据。
这是对缓存解释的答案的参考: https ://stackoverflow.com/a/2930567/1154501
先感谢您 !
编辑:也尝试使用 ARC,我遇到了同样的问题。