dub*_*eat 2 iphone memory-leaks uiimageview
使用Instruments,我继续使用UIImage指向内存泄漏.
我想我正在分配和释放内存.仪器中泄漏的物体被描述为NSConcreteData
以下是分配和释放UIImage的正确方法吗?
UIImage* flagimg = [UIImage imageWithData: [NSData dataWithContentsOfURL:url2]];
[flagimg release];
flagimg =nil;
Run Code Online (Sandbox Code Playgroud)
[UIImage imageWithData:]返回一个自动释放的对象,不应该再次释放.因此,这段代码剪切不包含内存泄漏,但相反,双重免费(在最坏的情况下).
请注意,仪器有时会在基金会本身产生误报和/或报告内存泄漏(是的,它们也会犯错误:-).
分配/释放对象的最快方法是避免使用便利初始化器(如imageWithData :),而不是像
NSData* data = [[NSData alloc] initWithContentsOfURL:url]];
UIImage* img = [[UIImage alloc] initWithData:data];
[data release];
// use your image
[img release];
这将立即分配和释放您的对象,而不是等到清理自动释放池.
但是请注意,内存泄漏通常不是尚未释放的内存,但是丢失并且不能再释放,因此将被自动释放池释放的对象不被视为内存泄漏.
| 归档时间: |
|
| 查看次数: |
11433 次 |
| 最近记录: |