祝大家十一月快乐,
好吧,我在我的项目上尝试了 Xcode 构建和分析,它显示了一些不寻常的泄漏,以我对 Objective C 的了解,我不能完全接受。
所以我决定提出一个测试项目并在这里问..
内存测试控制器.h
@interface MemoryTestController : UIViewController{
UIImageView *tstImageView;
}
@property(nonatomic,retain) UIImageView *tstImageView;
@end
内存测试控制器.m
@implementation MemoryTestController
@synthesize tstImageView;
- (void)viewDidLoad{
[super viewDidLoad];
self.tstImageView = [[UIImageView alloc] //<==This object is leaking
initWithFrame:<SomeFrame>];
self.tstImageView.image = [UIImage imageNamed:@"SomeImage.png"];
[self.view addSubview:tstImageView];
[tstImageView release];
}
-(void)dealloc{
[tstImageView release];
[super dealloc];
}
@end
当我尝试构建和分析时,clang 静态分析器说
第 xx 行对象的潜在泄漏
罪魁祸首是
self.tstImageView = [[UIImageView alloc]initWithFrame:<SomeFrame>];
我想我每次分配/保留时都会释放一次。我是否遗漏了什么,或者静态分析器有一些错误?
编辑:那里有泄漏吗?
好吧,我使用仪器中的泄漏工具运行上述项目..即使我尝试了很多次,它也没有显示任何泄漏..我应该相信谁?静态分析仪还是泄漏仪?