我想了解爲什麼我有一個非常基本的UIImage和UIImageView實現內存泄漏。UIImage imageNamed內存泄漏
在這種情況下,我沒有使用ARC(正確禁用)。
我的代碼是非常簡單的:
UIImage *image = [UIImage imageNamed:@"my_image.jpg"];
UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
[[self view] addSubview:imageView];
[imageView release];
我實現在一個UIViewController的viewDidLoad:
方法的代碼。
通過調用UIImage的方法imageNamed:
,我知道我會得到一個我不擁有/一個autorelease對象的對象。這個對象也將被剛剛實例化的UIImageView對象保留。所以我唯一擁有的對象是UIImageView。
運行此應用程序與內存後泄漏儀器,我有這樣的報道:
我聽說過工作緩存系統,但我不應該有內存泄漏,因爲一些的數據都是緩存。
這裏是一個參考答案與緩存的解釋: https://stackoverflow.com/a/2930567/1154501
預先感謝您!
編輯:也嘗試過與ARC,我得到了同樣的問題。
我會好奇,知道如果使用ARC時發生同樣的泄漏 – Nick
我剛剛嘗試過,我有同樣的問題與ARC –
我想這個是內存泄漏工具的一個問題。代碼分析器有時也有一些問題。 :) – user1567896