在我的应用程序委托中,我有以下代码片段:

...

@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 Analyzer在分配模型后报告了行上的潜在内存泄漏(当我添加autorelease语句时,它确实消失了,所以我猜想它刚好与行号混淆了)。这确实是内存泄漏,还是分析仪感到困惑?毕竟,释放是通过dealloc方法完成的。那么,在什么情况下以及在什么情况下有可能发生内存泄漏?

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

最佳答案

如果将该属性定义为retain,则将导致内存泄漏,因为该属性的保留计数为2-一次是alloc,一次是分配给该属性-但您只释放了一次。 Xcode对get confused执行line numbers though

关于ios - 分析仪在检测内存泄漏方面真的值得信赖吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7594880/

10-16 14:09