【发布时间】:2013-06-24 09:28:27
【问题描述】:
我遇到了这段代码
UIImageView *image = [[UIImageView alloc] initWithFrame:imageFrame];
[image setImage:[UIImage imageNamed:@"myImage"]];
[self.view addSubview:image];
image = nil;
鉴于没有使用 ARC,我假设它会导致 image 对象上的内存泄漏。
然而,静态分析器并没有捕捉到这一点。
我想知道谁错了,是静态分析器还是我,我想对此提出第二意见。
上面的代码真的会泄露吗?
【问题讨论】:
-
我认为确实如此。您确定分析仪知道缺少 ARC 吗?
-
是的,因为正确检测到其他泄漏。
-
我已将您的代码添加到
viewDidAppear,如果我使用 Xcode 4.6.3 分析该代码,则会收到 "Potential leak of an object of an object stored into 'image'" 警告. (我创建了一个没有 ARC 的全新“单一视图应用程序”。) -
这段代码在哪里声明,可能在 initWithFrame 中?你使用的是什么 xcode 版本?
-
@H2CO3 结果证明你是对的,我的错。
标签: objective-c memory-management memory-leaks