2011-09-29 29 views
1

在我的应用程序委托我有下面的代码片段:分析仪在检测内存泄漏方面真的值得信赖吗?

... 

@synthesize model = _model; 

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    ... 

    // Allocate the model 
    self.model = [[Model alloc] init]; 

    ... 
} 

- (void)dealloc 
{ 
    [_model release]; 
    [super dealloc]; 
} 

... 

Xcode的分析模型的分配后报告上线一个潜在的内存泄漏(它没有走的时候我增加了一个autorelease声明,所以我想它只是混合了行号)。这是真正的内存泄漏还是分析器困惑?在dealloc方法中完成所有发布之后。那么这里是否存在内存泄漏的可能性以及在哪些情况下?

如果是这样,我想解决的办法是将autorelase添加到分配。

回答

3

如果将属性定义为retain,因为它的保留计数为2 - 一次为alloc,并且一次赋予属性 - 但您只能释放一次,这是内存泄漏。 Xcode确实get confusedline numbers though

1

是的,值得信赖!

如果你上线的蓝色箭头图标,单击其中的分析显示泄漏:

enter image description here

它会给你有关泄漏的详细信息,准确说明它起源,并在此区分之所以出现在下一行:

enter image description here

0

静态分析是非常值得信赖的。毕竟ARC完全基于它。为了使iOS5编程正常工作,它必须很好。