ios - 分析器在检测内存泄漏方面真的值得信赖吗?

标签 ios memory-leaks

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

...

@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并且一旦分配给该属性(property)-但您只能释放一次。 Xcode 做 get confused关于 line numbers though .

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

相关文章:

ios - 在实例化 ViewController 之前更改/修改运行时用户定义的属性

ios - 即使登录错误也能登录

c - C 中段错误的不稳定行为

c - 在函数中释放取消引用的堆分配 block

java - ExecutorService.newFixedThreadPool.submit(new class()) 会导致内存泄漏吗?

c# - 由于 c# 组件中的 AutoMapper.Map,内存会随着每个请求而增加

ios - 在 SpriteKit 中检查节点和实例类型之间的碰撞

iphone - 像 Cocoa 一样抽象 UIViewController

ios - 如何处理对尚不存在的对象的 ID 引用的 RestKit 嵌套数组?

c - C 中的双重间接内存泄漏(可能)